Sha256: 2059b2e46fc4b5bbb0a3f1877fd589508688478be79ed8087d837ac2c2da6e97

Contents?: true

Size: 663 Bytes

Versions: 1

Compression:

Stored size: 663 Bytes

Contents

class Integer
  def pluralize desc
    if self == 0
      "no #{desc.to_s.pluralize}"
    elsif self == 1
      "#{self} #{desc}"
    else
      "#{self.dotted} #{desc.to_s.pluralize}"
    end
  end

  def dotted
    self.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1.').reverse
  end

  def to_filesize
    base = 1024
    out = lambda do
      {
        'B'  => base,
        'KB' => base * base,
        'MB' => base * base * base,
        'GB' => base * base * base * base,
        'TB' => base * base * base * base * base
      }.each_pair { |e, s| return "#{(self.to_f / (s / base)).round(1)} #{e}" if self < s }
    end.call

    out.sub('.0 B', ' B')
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lux-fw-0.6.2 ./lib/overload/integer.rb