2017-09-18 14 views
-1
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でリファクタリングする方法

+3

https://codereview.stackexchange.com/は、この種の質問のための適切な場所です。 – mudasobwa

+2

私はこのコードを作業コードであるため、このコードを「コードレビュー」(http://codereview.stackexchange.com)に投稿する必要があります。 –

+0

これは一時的にrubocop rules b/c私はそれがかなり簡潔な実装であることに同意します。 – Joe

答えて

0

time_ago_in_wordsをご覧になり、そのコードまたはコードを自由に使用してください。

コードメトリックスについて - コードはかなりシンプルで、uptimeメソッドのみを抽出する必要があります。

+1

[実装](https://github.com/rails/rails/blob/v5.1.4/actionview/lib/action_view/helpers/date_helper.rb#L93-L156)はそれほど単純ではありませんか? – Stefan

+0

もちろん。簡単に書くチャンスはありません。私はちょうどそれについて考えて参照されていないことを繰り返すことはありません。 –

関連する問題