module HumanizeNumber
Constants
- BILLION
- MILLION
- THOUSAND
- VERSION
Public Class Methods
humanize(number)
click to toggle source
# File lib/humanize-number.rb, line 8 def self.humanize(number) return number.to_s unless number.is_a?(Numeric) case when number.abs < THOUSAND number.to_s when number.abs < MILLION "#{(number / THOUSAND.to_f).round(3 - num_of_digits(number / THOUSAND))}k" when number.abs < BILLION "#{(number / MILLION.to_f).round(3 - num_of_digits(number / MILLION))}m" else "#{(number / BILLION.to_f).round([3 - num_of_digits(number / BILLION), 0].max)}b" end end
Private Class Methods
num_of_digits(number)
click to toggle source
# File lib/humanize-number.rb, line 25 def self.num_of_digits(number) Math.log10(number.abs).to_i + 1 end