Sha256: 5d3705b42979818aa9f3f5f70bd4cbbde458277458a346c770da5a7750fd7729
Contents?: true
Size: 1.26 KB
Versions: 37
Compression:
Stored size: 1.26 KB
Contents
module DuckPuncher module Ducks module Numeric def to_currency(prefix = '') "#{prefix}%.2f" % self.round(2) end def to_duration(seconds = false) secs = to_i mins = secs / 60 hours = mins / 60 buffer = '' if hours > 0 num_mins = mins % 60 buffer << "#{hours} h" buffer << " #{num_mins} min" unless num_mins.zero? elsif mins > 0 num_secs = secs % 60 buffer << "#{mins} min" buffer << " #{num_secs} s" if seconds && num_secs.nonzero? elsif seconds && secs >= 0 buffer << "#{secs} s" end buffer end # similar to Rails' #time_ago_in_words def to_time_ago secs = to_i mins = secs / 60 hours = mins / 60 days = hours / 24 buffer = '' if days > 0 buffer << "#{days} #{'day'.pluralize(days)}" elsif hours > 0 buffer << "#{hours} #{'hour'.pluralize(hours)}" elsif mins > 0 buffer << "#{mins} #{'minute'.pluralize(mins)}" elsif secs >= 0 buffer << "less than a minute" end buffer << ' ago' end def to_rad self / 180 * Math::PI end end end end
Version data entries
37 entries across 37 versions & 1 rubygems