電波ビーチ

☆(ゝω・)v

Rubocop使ってみる

前回rubyをいれたんですが、rubyいれたら書き始める前に使い方を覚えておけと話題のrubocopを触ってみます。

github.com

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について

RuboCopでRubyコードのスタイルガイド準拠度をチェックしましょう

Railsメモ(22) : RuboCopで静的コード解析を行う

.rubocop.yml設定例 .rubocop.ymlと.rubocop_todo.ymlの書き方の雰囲気がわかる