2017-09-18 10 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

이 코드는 작동 코드이므로이 질문을 닫으려고합니다. [Code Review] (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

물론. 더 간단하게 작성할 기회는 없습니다. 내가 그것에 대해 생각한 단지 레일 반복하지 마십시오 :) –