class Filesize

def from(arg)

Returns:
  • (Filesize) -

Raises:
  • (ArgumentError) - Raised if the file size cannot be parsed properly.

Parameters:
  • arg (String) -- A file size to parse.
def from(arg)
  parts  = parse(arg)
  prefix = parts[:prefix]
  size   = parts[:size]
  type   = parts[:type]
  raise ArgumentError, "Unparseable filesize: #{arg}" unless type
  offset = (type[:prefixes].map { |s| s[0].chr.downcase }.index(prefix.downcase) || -1) + 1
  new(size * (type[:multiplier] ** (offset)), type)
end