module ImageOptim::Space
Present size in readable form as fixed length string
Constants
- BASE
- EMPTY_SPACE
- LENGTH
- PRECISION
- SIZE_SYMBOLS
Public Class Methods
space(size)
click to toggle source
# File lib/image_optim/space.rb, line 11 def self.space(size) case size when 0, nil EMPTY_SPACE else log_denominator = Math.log(size.abs) / Math.log(BASE) degree = [log_denominator.floor, SIZE_SYMBOLS.length - 1].min number_string = if degree == 0 size.to_s else denominator = BASE**degree number = size / denominator format("%.#{PRECISION}f", number) end "#{number_string}#{SIZE_SYMBOLS[degree]}".rjust(LENGTH) end end