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/EmptyLinesAroundBlockBody

blockのendの前の開業が余計です

class Hoge
def foo
p 'hoge'
end
end

class Hoge
def foo
p 'hoge'
end
end

Layout/EmptyLineAfterGuardClause

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

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

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

Layout/LeadingCommentSpace

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

#hoge

# hoge

Layout/MultilineMethodCallIndentation

メソッドチェーンを複数行で書いた時のインデント

aaaa.bbbb
.cccc

aaaa.bbbb
.cccc

に変更

Layout/LineLength

1行が長すぎる

Layout/MultilineOperationIndentation

複数行で演算子を使ったコードのインデント

hoge = hoge +
foo

hoge = hoge +
foo

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

Lint/UselessMethodDefinition

そのメソッドは本当に必要なんですか?って感じですね

def hoge
super
end

不要であれば消すんですが、これ必要だったのでdisableにします。
(戦いに負けた感)

def hoge # rubocop:disable Lint/UselessMethodDefinition
super
end

Performance/Count

selectとcountを一緒に使うのがダメっぽい?

hoge.select {|h| h == 1 }.count

foo = hoge.select {|h| h == 1 }
foo.count

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

に変更