def readable
uptime = (Time.now - self).to_i
case uptime
when 0 then 'just now'
when 1 then 'uptime second ago'
when 2..59 then uptime.to_s + ' seconds ago'
when 60..119 then 'uptime minute ago' # 120 = 2 minutes
when 120..3540 then (uptime/60).to_i.to_s + ' minutes ago'
when 3541..7100 then 'an hour ago' # 3600 = 1 hour
when 7101..82_800 then ((uptime + 99)/3600).to_i.to_s + ' hours ago'
when 82_801..172_000 then 'uptime day ago' # 86400 = 1 day
else ((uptime + 800)/86_400).to_i.to_s + ' days ago'
end
end
リンターは次のような間違いを話しますが、どのように修正できますか?Rubyでリファクタリングする方法
- FeatureEnvy:時間読める#は、自己よりも '稼働時間' に言及[https://github.com/troessner/reek/blob/master/docs/Feature-Envy.md]
TooManyStatements(多分別のクラスに移動?):時間読める#を約10文[https://github.com/troessner/reek/blob/master/docs/Too-Many-Statements.md]
を持っています割当分岐読み取り可能なコンディションのサイズがtoo です。 [20.64/15]
- 読み取りのための複雑な複雑さが高すぎます。 [9/6]
- メソッドの行数が多すぎます。 [12/10]
https://codereview.stackexchange.com/は、この種の質問のための適切な場所です。 – mudasobwa
私はこのコードを作業コードであるため、このコードを「コードレビュー」(http://codereview.stackexchange.com)に投稿する必要があります。 –
これは一時的にrubocop rules b/c私はそれがかなり簡潔な実装であることに同意します。 – Joe