+
+ MINUTE = 60
+ HOUR = 60 * MINUTE
+ DAY = 24 * HOUR
+
+ def render_runtime duration, use_words, round_to_min=true
+ days = 0
+ hours = 0
+ minutes = 0
+ seconds = 0
+
+ if duration >= DAY
+ days = (duration / DAY).floor
+ duration -= days * DAY
+ end
+
+ if duration >= HOUR
+ hours = (duration / HOUR).floor
+ duration -= hours * HOUR
+ end
+
+ if duration >= MINUTE
+ minutes = (duration / MINUTE).floor
+ duration -= minutes * MINUTE
+ end
+
+ seconds = duration.floor
+
+ if round_to_min and seconds >= 30
+ minutes += 1
+ end
+
+ if use_words
+ s = []
+ if days > 0 then
+ s << "#{days} day#{'s' if days != 1}"
+ end
+ if hours > 0 then
+ s << "#{hours} hour#{'s' if hours != 1}"
+ end
+ if minutes > 0 then
+ s << "#{minutes} minute#{'s' if minutes != 1}"
+ end
+ if not round_to_min or s.size == 0
+ s << "#{seconds} second#{'s' if seconds != 1}"
+ end
+ s = s * " "
+ else
+ s = ""
+ if days > 0
+ s += "#{days}<span class='time-label-divider'>d</span> "
+ end
+
+ if (hours > 0)
+ s += "#{hours}<span class='time-label-divider'>h</span>"
+ end
+
+ s += "#{minutes}<span class='time-label-divider'>m</span>"
+
+ if not round_to_min
+ s += "#{seconds}<span class='time-label-divider'>s</span>"
+ end
+ end
+
+ raw(s)
+ end
+