Sha256: 94b684848b59ecac9c0348fc7fb4e232701a09e60bffcdc8673c324b46efea9b

Contents?: true

Size: 814 Bytes

Versions: 4

Compression:

Stored size: 814 Bytes

Contents

class Numeric

  # Returns self, bounded to min/max values
  def bound(min, max)
    min, max = max, min if max < min
    return min if min > self
    return max if max < self
    self
  end

  def to_display(decimal_count = nil, include_thousands = true)
    res = ''
    decimal = self.to_s.extract(/\.([0-9]+)/)
    unless decimal.nil? || decimal_count.nil?
      decimal = decimal[0...decimal_count].ljust(decimal_count,'0')
    end
    val = self.to_i.abs
    if include_thousands
      while val > 999
        res.prepend(',' + (val % 1000).to_s.rjust(3,'0'))
        val /= 1000
      end
    end
    res.prepend(val.to_s) if val > 0 || res.empty?
    res = '-' + res if self < 0
    res = res + '.' + decimal unless decimal.blank?
    res
  end
  
  #def to_currency
  #  Currency::parse(self)
  #end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iron-extensions-1.1.1 lib/iron/extensions/numeric.rb
iron-extensions-1.1.0 lib/iron/extensions/numeric.rb
iron-extensions-1.0.1 lib/iron/extensions/numeric.rb
iron-extensions-1.0.0 lib/iron/extensions/numeric.rb