Module: EasyType::Mungers::Size

Defined in:
lib/easy_type/mungers.rb

Overview

The Size munger, munges a specified value to an Integer.

rubocop: disable Metrics/AbcSize rubocop: disable Metrics/CyclomaticComplexity

Instance Method Summary collapse

Instance Method Details

#unsafe_munge(size) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/easy_type/mungers.rb', line 41

def unsafe_munge(size)
  return super(size) if size.to_s == 'absent'
  return size if size.is_a?(Numeric)
  case size
  when /^\d+(K|k)$/ then size.chop.to_i * 1024
  when /^\d+(M|m)$/ then size.chop.to_i * 1024 * 1024
  when /^\d+(G|g)$/ then size.chop.to_i * 1024 * 1024 * 1024
  when /^unlimited$/i then 'unlimited'
  when /^\d+$/ then size.to_i
  else
    raise('invalid size')
  end
end