RubocopはOSSで開発されているソースコードの静的解析を行うgemです。
RubyStyleGuidにソースコードが準拠しているかチェックすることが出来ます。
Githubリポジトリ:https://github.com/bbatsov/rubocop
$ gem install rubocop
$ rubocop hoge.rb
文字 | 意味 |
---|---|
. | Clean(問題なし) |
C | Convention(慣習違反) |
W | Warning |
E | Error |
F | Fatal |
Inspecting 1 file
C
Offenses:
hoge.rb:28:1: C: Missing top-level class documentation comment.
class Hoge
^^^^^
1 file inspected, 1 offenses detected
google翻訳
クラス本体の最後で余分な空行が検出されました。
class Hoge
def fuga
return piyo
end
# 不正な改行
end
google翻訳
最終改行がありません。
class Hoge
def fuga
return piyo
end
end # ファイルの末尾に改行なし
google翻訳
1つの末尾空白行が検出されました。
class Hoge
def fuga
return piyo
end
end
# 空白行
# 空白行 : NG
google翻訳
コンマの後にスペースがありません。
# カンマのあとにスペースが入っていない
Hoge.new(a,b,c) # NG
Hoge.new(a, b, c) # OK
google翻訳
末尾の空白が検出されました。
class hoge
def fuga
puts piyo
end # 行の末尾に空白文字
end
google翻訳様
トップレベルのクラスのドキュメントコメントがありません。
# クラスの1行上にコメントを書く
class hoge
def fuga
puts piyo
end
end
google翻訳
コメントにはASCII記号のみを使用してください。
# piyoを出力 : NG
# output piyo : OK
puts piyo
google翻訳
内側にスペースがありません。
# {}の内側には半角スペースを入れる。
{ hoge: "hoge", fuga: "fuga" }
google翻訳
ラインが長すぎます。 [84/80]
# 1行の文字数は80文字まで
# NG
puts HogeHoge.new(hogehoge: 52, fugafuga: 11, piyopiyo: piyo.new("hiyoco", "niwatori")).hogefugapiyo_method
# OK
hoge = HogeHoge.new(
hogehoge: 52,
fugafuga: 11,
piyopiyo: piyo.new("hiyoco", "niwatori")
)
puts hoge.hogefugapiyo_method
Closing method call brace must be on the line after the last argument when opening brace is on a separate line from the first argument.
google翻訳
中括弧を最初の引数とは別の行に置いているときに、最後の引数の後の行には、メソッド呼び出し中括弧を閉じる必要があります。
# 1行の文字数は80文字まで
# NG
Hoge.new(
hoge: "hoge",
fuga: "fuga")
# OK:閉じ括弧の位置は開始の位置と合わせる。
Hoge.new(
hoge: "hoge",
fuga: "fuga"
)