Class: Eye::Patch::ValueParser
- Inherits:
-
Object
- Object
- Eye::Patch::ValueParser
- Defined in:
- lib/eye/patch/value_parser.rb
Constant Summary collapse
- TIME_MATCHER =
/\s(?<duration>(?:week|day|hour|minute|second)s?)(?:\s|\Z)/
- SIZE_MATCHER =
/\s(?<size>(?:tera|giga|mega|kilo)?bytes?)(?:\s|\Z)/
- MATCHERS =
{ time: TIME_MATCHER, size: SIZE_MATCHER, }.freeze
Class Method Summary collapse
Class Method Details
.parse(value) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/eye/patch/value_parser.rb', line 16 def self.parse(value) return value unless value.is_a?(String) result = MATCHERS.detect do |match_type, matcher| break send(:"parse_#{match_type}", value) if value.match(matcher) end result || value end |
.parse_size(value) ⇒ Object
30 31 32 33 |
# File 'lib/eye/patch/value_parser.rb', line 30 def self.parse_size(value) unit = value.match(SIZE_MATCHER)[:size] value.gsub(/[^\d.]/, "").to_f.send(unit) end |
.parse_time(value) ⇒ Object
26 27 28 |
# File 'lib/eye/patch/value_parser.rb', line 26 def self.parse_time(value) ChronicDuration.parse(value) end |