33 lines
903 B
Ruby
33 lines
903 B
Ruby
module CompletionsConcern
|
|
extend ActiveSupport::Concern
|
|
|
|
def pad(n)
|
|
if n > 9
|
|
return n.to_s
|
|
end
|
|
"0" + n.to_s
|
|
end
|
|
|
|
def display_time(time)
|
|
h = time / 3600
|
|
m = (time % 3600) / 60
|
|
s = (time % 3600) % 60
|
|
if h > 0
|
|
return h.to_s + ":" + pad(m) + ":" + pad(s)
|
|
elsif m > 0
|
|
return m.to_s + ":" + pad(s)
|
|
end
|
|
s.to_s
|
|
end
|
|
|
|
def extend_completions!(contestant)
|
|
current_time_from_start = 0
|
|
contestant.completions.order(:time_seconds).each do |completion|
|
|
completion.update(display_time_from_start: display_time(completion.time_seconds),
|
|
display_relative_time: display_time(completion.time_seconds - current_time_from_start))
|
|
current_time_from_start = completion.time_seconds
|
|
end
|
|
contestant.update(display_time: display_time(current_time_from_start), time_seconds: current_time_from_start)
|
|
end
|
|
end
|