class ReeNumber::NumberToHumanSize
def call(number, **opts)
def call(number, **opts) options = DEFAULTS.merge(opts) number = Float(number) if smaller_than_base?(number) number_to_format = number.to_i.to_s else human_size = number / (BASE**exponent(number)) number_to_format = number_to_rounded( human_size, **slice( options, [:precision, :significant, :strip_insignificant_zeros, :round_mode] ) ) end storage_unit_key = storage_unit_key(number) unit = unit(options[:locale], storage_unit_key, number) result_number = options[:format] .gsub("%n", number_to_format) .gsub("%u", unit) number_to_delimited( result_number, **slice(options, [:separator, :delimiter]) ) end