module CompletionsConcern extend ActiveSupport::Concern def pad(n) if n > 9 return n.to_s end "0" + n.to_s end def display_time(seconds) if seconds > 3600 hours = seconds / 3600 return hours.to_s + ":" + display_time(seconds % 3600) elsif seconds > 60 minutes = seconds / 60 return pad(minutes) + ":" + display_time(seconds % 60) end pad(seconds) end def extend_completions!(completions) current_time_from_start = 0 @completions.each do |completion| completion.display_time_from_start = display_time(completion.time_seconds) completion.display_relative_time = display_time(completion.time_seconds - current_time_from_start) current_time_from_start += completion.time_seconds end end end