Ruby
erb
RuboCop

ruumbaにパッチを送った話

ruumbaにパッチを送った話

erbでもrubocopを走らせたくてruumbaというプロジェクトを試していたらいくつか要求とあわないところがあったので2件ほどパッチを送ってました。
そして、それらがマージされて近々新しいバージョンとしてリリースされそうなので記事にしてます。

rubocopの実行結果を正しく判定するように

CIサービスだと各CIのステップをシェルコマンドの実行結果を元に判定しているんですが、rubocopから返ってくる exitstatus をruumbaではうまく判定できていませんでした。
なので、1行だけ直して、整数値をゼロか(コマンドの正常終了)で

rakeタスクのドキュメントを詳しく

rakeタスクとして実行する場合も設定ファイルを指定したい時があったので、加えさせてもらいました。
{ arguments: %w[opts...] } みたいに指定する必要があるので、わかったら楽なんですが、わからないと普通につらかったので入れされてもらいました。

毎回コマンドを覚えるのめんどうなので個人的にrakeタスクにするのをおすすめします。

終わりに

これだけやっといてアレですが、結局すぐにCIで使いたかったので、erblintに移行してしまいました。

erbでrubocopを走らせる場合、スタイルがどうしても崩れまくるので、スタイル関係は基本的に設定ファイルで無効化した方が幸せです。
それから、erbからrubyのプログラムとして切り出される方法によるんですが(おそらくerblintとruumbaでそれぞれ微妙に違う)、けっこう偽陽性が多いので手で確認だけして、さくっと無効化するのが基本になります。

テンプレートやhelperを書いている時のあるあるかと思うんですが、HTMLインジェクションがかなりうるさいですが、どうしても使った方が楽なケースがどうしても多いのでそうゆうときは、コメントで無効化するとよいかと思います。
若干長くなるんですが、また見返す時に注意することができるので、ないよりはよいです。