rubocopとの戦いっ!

戦いというか、警告にしたがって修正をしていきます。(随時追記予定)

Layout/TrailingWhitespace

これ割とそのままですが、行の一番最後にスペースが入ってるので消したら通ります。

Layout/ExtraSpacing

こっちは間にスペースが入ってるからですね。

validates :user,            length: { maximum: 32 }

validates :user, length: { maximum: 32 }

に修正

Layout/SpaceAroundOperators

演算子の前後にスペースがたくさん入ってた

if 1 >             a

if 1 > a

に修正

Layout/SpaceBeforeComma

カンマの前のスペースが余計です

hoge = { foo: 'f' , bar: 'b' }

hoge = { foo: 'f', bar: 'b' }

Layout/EmptyLinesAroundClassBody

classのend前の改行が余計です

class Hoge
  def foo
    p 'bar'
  end

end

class Hoge
  def foo
    p 'bar'
  end
end

Layout/EmptyLineAfterGuardClause

途中でリターンした行の下に改行が必要

def hoge
  return if foo.blank?
  'hoge'
end

def hoge
  return if foo.blank?

  'hoge'
end

Layout/LeadingCommentSpace

コメントの#の直後にスペースを追加します

#hoge

# hoge

Style/SymbolArray

これも割とそのままですかね

hoge = [:foo, :bar, :baz]

上記を

hoge = %i[foo bar baz]

に書き換え

Style/IfUnlessModifier

後ろに書いたif/unlessが長いようです

return true if aaaaa == bbbbb || ccccc != ddddd

return true if aaaaa == bbbbb
return true if ccccc != ddddd

Style/StringLiterals

ただのテキストをダブルクオートで囲っている

hoge = "foo"

hoge = 'foo'

Style/MultilineTernaryOperator

三項演算子が複数行になっている

hoge != foo ? 
  'a' :
  'b'

とりあえずifで書き換え

if hoge != foo
  'a'
else
  'b'
end

Metrics/AbcSize

メソッド内のコードが複雑なようです。分岐を減らします
いい感じのサンプルが思いつきませんが、分岐は別のメソッドでやるとか?

def checker(a = nil, b = nil)
  if a.present?
    return 'a' if a == 'a' 
  else
    return 'b' if b == 'b'
  end
end

def checker(a = nil, b = nil)
  return a.present? ? word_checker(a, 'a') : word_checker(b, 'b')
end

private

def word_checker(data, word)
  return word if data == word
end

Metrics/CyclomaticComplexity

複雑すぎるってやつですね

Lint/UnusedMethodArgument

未使用の引数

def hoge(a, b)
  return 'a' if a.blank?
end

def hoge(a)
  return 'a' if a.blank?
end

Rails/FindEach

eachではなくfind_eachにします

hoge.each do |h|
  puts h
end

hoge.find_each do |h|
  puts h
end

Rails/TimeZone

timezoneなしがダメっぽい

Time.now

Time.zone.now

に変更

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください