前回rubyをいれたんですが、rubyいれたら書き始める前に使い方を覚えておけと話題のrubocopを触ってみます。
rubocopてなんぞ
- gemである
- linterである
- コマンドオプションで自動で(できる限り)修復してくれる
- 細かい設定は設定ファイルに書く
The Ruby Style Guide rubyのコーディングスタイルはこれといって決まってないがこれに沿っていこうぜというスタイルガイド。Rubocopはこれに準拠しているらしい。
インストール
gem install rubocop
で入った。ちなみにデフォルトの設定ファイルがどこにあるのかわからなかった。
使い方
解析
プロジェクトルートでrubocop
するとディレクトリ以下の.rb
に対して解析開始
自動修復
rubocop --auto-correct
するとインデントとか改行とかそのへんは直して上書きしてくれる
.rubocop.yml
プロジェクトルートにおいて同名のファイルを作成。ここに設定を書いて反映させることができる。なおここでRails用だとして付記しておくこともできるそうだ Rubocopの設定アレコレ
.rubocop_todo.yml
プロジェクトルートにおいてrubocop --auto-gen-config
すると同名のファイルがプロジェクトルートに作成される。中身はrubocopしたときにでた違反箇所をすべて無効化する設定が書かれており、.rubocop.yml
にはそれを読み込んで反映させinherit_from: .rubocop_todo.yml
という設定がファイルの一番上に書き込まれた。
なおすべて無効化するといいつつ、メソッド名が最初の文字だけ大文字みたいな場合は直されなかった(もちろんメソッド名はdo_nameみたいなスネークケースがいい)
また、yml以外にrubyで書いた設定をrequire:
で読み込んで適用することもできるっぽい? RuboCopの新しいルールを追加する方法(Custom Copの作り方)
ほか、かなり細かく設定できるようだ(Rubocop/Cops)
メモ
デフォルトの設定のまま使うことはないらしい
railsに特化した設定が最初からオプションで選べる(-R
オプション)
何がどこまでできるのかは分からんがとりあえずこの程度だけわかってればあとは適当に公開されている.rubocop.ymlをパク参考にすればよさそう。
参考
RuboCopでRubyコードのスタイルガイド準拠度をチェックしましょう
Railsメモ(22) : RuboCopで静的コード解析を行う
.rubocop.yml設定例 .rubocop.ymlと.rubocop_todo.ymlの書き方の雰囲気がわかる