lib/vidibus/helpers/extensions/view.rb in vidibus-helpers-0.0.0 vs lib/vidibus/helpers/extensions/view.rb in vidibus-helpers-0.0.1
- old
+ new
@@ -14,9 +14,33 @@
# Returns next number for tab order.
def autotab
@autotab ||= 0
@autotab += 1
end
+
+ # Formats a number or float as human duration.
+ #
+ # Examples:
+ #
+ # number_to_duration(24.5) # => "00:25"
+ # number_to_duration(24.5, :hours => true) # => "00:00:25"
+ # number_to_duration(3654) # => "01:00:54"
+ # number_to_duration(3654, :hours => false) # => "60:54"
+ #
+ def number_to_duration(seconds, options = {})
+ hours = options[:hours]
+ seconds = seconds.round
+ hour = (seconds / 3600).floor unless hours == false
+ min = (seconds / 60).floor
+ sec = (seconds % 60).round
+ if hours != false and (hours == true or hour > 0)
+ min -= hour * 60
+ output = "%02d:" % hour
+ else
+ output = ''
+ end
+ output + "%02d:%02d" % [ min, sec ]
+ end
end
end
end
end