class ChupaText::SizeParser
Public Class Methods
parse(size)
click to toggle source
# File lib/chupa-text/size-parser.rb, line 30 def parse(size) new.parse(size) end
Public Instance Methods
parse(size)
click to toggle source
# File lib/chupa-text/size-parser.rb, line 35 def parse(size) case size when /TB?\z/i scale = 1024 ** 4 number_part = $PREMATCH when /GB?\z/i scale = 1024 ** 3 number_part = $PREMATCH when /MB?\z/i scale = 1024 ** 2 number_part = $PREMATCH when /KB?\z/i scale = 1024 ** 1 number_part = $PREMATCH when /B?\z/i scale = 1 number_part = $PREMATCH else scale = 1 number_part = size end begin number = Float(number_part) rescue ArgumentError raise InvalidSizeError.new(size) end (number * scale).round end