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

Version Path
duck_puncher-5.0.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-5.0.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.5.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.5.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.4.2 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.4.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.4.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.3.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.3.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.2.3 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.2.2 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.2.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.2.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.1.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-4.0.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-3.0.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-2.16.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-2.15.0 lib/duck_puncher/ducks/numeric.rb
duck_puncher-2.14.1 lib/duck_puncher/ducks/numeric.rb
duck_puncher-2.14.0 lib/duck_puncher/ducks/numeric.rb