`Gemspec/RequiredRubyVersion` cop の実装で学んだこと

pocke さんに RuboCop JP 発の PR をレビューしてもらった際に学んだこと。全文に代えたコードは以下。

github.com

少し日本語テキストで記しておく。

  • 今回の例としては false negative のテストコードとして追加しているが、想定しうるコードでクラッシュするのを避ける (今回 required_ruby_version への変数代入が想定できていなかった)
  • スタブを避ける手段が用意されていないかいま一度確認する。今回の例でいうと expect_offense の第2引数にファイル名を渡せるようになっている。使っている API のインタフェースはきちんと調べる

他にも str_content や最左最長一致で不要な正規表現は不要だったなどいろいろあるけれど、まだまだ粗い箇所について今回も勉強になったのだった。

Rails Developers Meeting #7

今回で毎月の開催は最終回ということで、ひとまず毎月開催お疲れ様でした。

個人的に印象に残ったのは、ukstudio の「サービスレイヤー」についての PoEAA 話やうずらさんの「コンテナはプロセス」といったものだった。前者については懇親会でも議論していて書籍への解釈の違いなどを話せて良かった。

12月に LT で登壇するけれど、そのスライドは福岡から帰ってきたらの着手になりそうで、まずは福岡の前夜祭 LT の準備からそろそろホンキ出す。

渋谷.rb[:20171115]

渋谷.rb[:20171115] に行った。会場はいつものピクスタさん。

shibuyarb.doorkeeper.jp

主に3つ進捗があった。

1つ目。神速さんから技術書典で頒布されていた Rails の薄い本をレビュアー献本でもらった。

Rails アプリケーションの実践的な Tips など記されていてなかなか良い薄い本だと思うので、興味のある人は神速さんにコンタクトをとって入手すると良いと思っている。

2つ目。Style/MixinUsage cop の Issue があがっていたので、PR を書いていたりした。

github.com

さすがに include M といった情報でレシーバーのクラスを静的解析で判断することはできないので、それが引数に使われるケースは false negative という判断で提案したもの。RSpec の Include matcher で false positive になるのはなるほどなあという Issue だった。

3つ目。福岡Ruby会議の宿をとれた。ここ1週間くらい毎日見ていてまったくとれなかったところ、publichtml さんに知見を教わって予約することができた。

今回の渋谷.rbに参加したとき、福岡Ruby会議当日の宿がない、前夜祭のスライドもないといった状態から宿はある状態になることできた。

RuboCop JP の Issue のひとつをやってみた

RuboCop JP の Issue をざっと見て、やってみようという Issue があったので対応したりしてみた。ちなみに RuboCop JA の Issue は、pocke さんによる Issue 解決への実装の難易度も記されていて面白い。

github.com

今回の Issue は、今年の RubyKaigi 2017 のときに pocke さんに相談していた Lint/UnneededRequireStatement cop の実装で行なっていた TargetRubyVersion に関するテストの復習にもなると思いながらやっていた。

PR を出す際に OSS Gate のときの悩みでもあった、日本語の Issue から upstream に直接リンクすると、バックリンクが日本語になって upstream の人が ??? とならないか気になる問題で直接のリンクを貼っていない PR は以下。

github.com

RuboCop の CI から rbx-3 を落とした

長らくメンテナンスされる気配がなかったようなので、Travis CI から落とす PR を出してマージされた。少しばかり CI の結果が早くなったり、pending からキューイングされるのが速くなるのではと思う。

github.com

rbx-3 へのサポートをしようという人はいるかもしれないので、この PR では Travis CI からドロップしただけに留まっている。

RuboCop JP の Organization に招待頂いた

pocke さんが講演された表参道.rb あたりで話題に上がっていた RuboCop JP が作れらていて、Organization に招待頂いていた。

github.com

まだすべての Issue に目を通せていないながらも、onk の登録した Issue が日本っぽくてなるほどと思ったりしていた。

github.com

趣旨などは発起人の pocke さんの日記をご覧ください。

pocke.hatenablog.com