作ったもの
こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見る…
こんにちは。 id:Pocke です。最近はパルワールドというゲームをやっています。 パルワールドでは個人がサーバーを建てることができ、私も例に漏れず自宅のあまっているPCにサーバーを建てています。 ですがサーバーを管理している上でいくつか不便なことが…
こんにちは。 id:Pocke です。 graphql-coverage という gem をリリースしました。 github.com なにこれ GraphQL-Ruby を使っているときに、テストがすべてのフィールドを網羅して呼んでいることを検査するための gem です。 モチベーション 私は GraphQL-Ru…
こんにちは。正規表現でかんたんにCopを書けるRuboCop拡張を作ってみたので紹介します。 github.com 使い方 まず、ほかのRuboCop拡張と同様にgemをインストールし、.rubocop.ymlのrequireにこのgemを指定してください。 この拡張は設定をしないと何も動きま…
年末なので、今年GitHubに作ったリポジトリを振り返ってみます。 このリストは次の記事のコードを使って生成しました。(記事は去年のものだけど、今年実行しても動くはず) pocke.hatenablog.com 今年は15個のリポジトリを作りました。去年の31個より減ってる…
rubocop-rails にRails/UniqueValidationWithoutIndex copを追加しました。 rubocop-railsの次期リリース(おそらくv2.5.0)から利用できます。 github.com これはなに Rails/UniqueValidationWithoutIndex copは、RDBMSのunique indexがついていないカラムに…
最近、 https://commits.hatenablog.com で毎日日記を書いている。 この毎日というのは一日も欠かさずという意味で、実際日記を書き始めた2019-12-17から一日も欠かさずに続けている。1 これを続けるために2つ工夫していることがあるので紹介したい。1つは仕…
年末なので、今年GitHubに作ったリポジトリを振り返ってみます。 このリストは次の記事のコードを使って生成しました。 pocke.hatenablog.com リポジトリたち 今年は31個のリポジトリを作りました。 下に行くほど新しいリポジトリです https://github.com/po…
github.com TL;DR ruby -cw をRuboCopのインターフェイスで扱うためのgem ruby -cwとは rubyのコマンドラインオプション。 -cを付けると、Rubyはコードを実行せず、構文のチェックのみを行う。 -c check syntax only -wを付けると、Rubyは見つけた警告をすべ…
Hello, Vanner! github.com 実装の動機 keycast.vim というプラグインを紹介した(keycast.vimをつくった - pockestrap)ところ、macOSでうまく動かないという報告をもらいました。 調べてみると、keycast.vimが依存しているbannerコマンドの挙動がプラットフ…
Vimで入力した文字を表示するためのプラグイン、keycast.vimを作った。 github.com screencast 仕組み 入力されたキーをbannerコマンドで大きくして、popup windowに表示している。 キーの入力 最初、Vimでキーの入力を監視する方法が見つからなくて苦労した…
github.com AUR (Arch User Repository)からパッケージをインストールするItamaeのresourceを作りました。 Usage 次のように書くとrbenvパッケージをAURからインストールします。 aur_package "rbenv" Arch Linuxの環境をItamaeで構築するのに便利な気がしま…
Problem Denite.nvim という便利なVimプラグインがあります。 Deniteの解説は他に譲りますが、私は主にファイル名のインクリメンタルサーチや、git grepに使っていました。 github.com Uniteの頃からとても便利に使っていたのですが、DeniteはPythonに依存し…
前回までのお話 pocke.hatenablog.com Whitespaceというプログラミング言語があります。 Whitespaceは空白文字だけで構成されたプログラミング言語です。 空白文字だけで構成されているので、当然Whitespaceでプログラムを記述するのは大変です。 そこで、Ru…
Whitespaceというプログラミング言語があります。 この言語はスペースとタブと改行文字だけで構成された言語です。 たとえばHello, world!を出力するプログラムは次のようになります。 gist.github.com このWhitespaceをRubyで実装してみました。Akazaという…
Rubyは言語仕様としてはoverloadを提供していませんが、ライブラリを使うことでoverloadできます。 github.com 使い方 まずgemをインストールします。 $ gem install overloader クラスにOverloaderモジュールをextendし、overloadメソッドを呼び出すことでo…
PoCを作っている。 なに Vimには:terminalという便利なコマンドがあり、これを実行するとVimの中でターミナルが開く。1 これは多分便利で、例えばターミナルからgfしやすかったりすると思う。 :terminalコマンドで開かれるのはターミナルなので、もちろんそ…
github.com なにこれ Rubyのdef-endなどの対応を%でジャンプするためのVimプラグイン。Parser gemを使っているので、Parser gemが正確にパースできるコードであれば正確な位置にジャンプできる。 動機 vim-jpのSlack1でmatchup.vimがうまく動かないという話…
とりあえずぐだぐだと現状を書いておくだけの記事。 リポジトリはこのへん。 github.com github.com 2018年の夏頃に開発をはじめたのだけど、途中止まってしまって最近開発を再開した。 自分がGitHubのNotificationsから乗り換えるぐらいにはできてきたので…
Rails Console、便利ですよね。これさえあればデータの表示や簡単なデータの修正、作成などが簡単にできてしまいます。 ところがそんな便利なRails Consoleにも1つ大きな欠点があります。Rails ConsoleはRailsでしか使えません。 当然です。ですが、不便です…
こんにちは。Ruby 2.6が先日リリースされましたね。 Rubyの新しいバージョンがリリースされると、その度に.travis.ymlに書かれているRubyのバージョンを上げる作業をしている方は多いと思います。 今回はその作業を楽にするツールを作ったので紹介いたします…
少し前にナンプレのアプリをリリースしました。 今回はこのアプリにタブ機能を実装したのでお知らせします。 Androidユーザーの方はダウンロードして使っていただけると嬉しいです。 pocke.hatenablog.com play.google.com タブ機能とは? この機能を使うこ…
Today, I published a simple command line tool to update commit status on GitHub. It is named git-update-commit-status. github.com Installation It requires Go 1.11 or higher. $ export GO111MODULE=on $ go get -u github.com/pocke/git-update-c…
42個。作った順 https://github.com/pocke/shakaise-filter ゴミ https://github.com/pocke/stackprof-run これは本当に便利で、stackprofを使う人は使うべき https://github.com/pocke/ruby-pkgbuild Ruby 2.4.0がめちゃくちゃ遅くてつらかったので、2.4.1…
github.com Style/EmptyBlockParameterとStyle/EmptyLambdaParameterというRuboCopのCopをだいぶ前に追加した。後者はおまけ なにこれ Rubyでは、ブロック引数が存在しない場合でもバー(|)を書くことが出来る。 foo.do_something do foobar end # 上の式とこ…
github.com github.com rubocop-jpのissuesにあげたものを、実装してみました。 このCopが対象とする問題 eval族1のメソッドには、コードの位置情報を渡すことが出来ます。 この位置情報は主に例外が上がった際のバックトレースの表示に役立ちます。 https:/…
id:sinsoku さんのツイートを見て思いついた。 for n in {1..10}; do rspec spec/foo_spec.rb || break; doneそして、稀に落ちるテストが再現するのを待つ— 神速@リリカルエンジニア (@sinsoku_listy) 2017年11月7日 zshのrepeat便利なんだけど、exit status…
コマンドがstderrを出力したらexit 1をするようなコマンドがほしかったから作った。 github.com 何故必要か 「警告をstderrに出すけど、警告があっても常にexit statusが0のコマンド」をCI上で使っていて、警告が出た場合はCIを落としたかった。 Installatio…
Ruby のコードをちょっと試したい時、requireを煩わしく感じることがあります。 例えば素数が小さい順に10個欲しくなった時、Rubyist は Ruby でワンライナーを書くでしょう。 $ ruby -e 'require "prime"; require "pp"; pp Prime.take(10)' [2, 3, 5, 7, 1…
github.com 生きていると、絵文字が欲しくなる時がある。例えば、ブログのタイトルに迷った時。 そういう時に、サッと絵文字を提案してくれるコマンドがあったら便利ではないだろうか? その願いを叶えてくれるのが、emo コマンドだ。 このコマンドは、go ge…