Module: YiffSpace::Utils::DurationParser
- Defined in:
- lib/yiffspace/utils/duration_parser.rb
Class Method Summary collapse
Class Method Details
.parse(string) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/yiffspace/utils/duration_parser.rb', line 8 def self.parse(string) abbrevs = Abbrev.abbrev(%w[seconds minutes hours days weeks months years]) raise unless string =~ /(.*?)([a-z]+)\z/i size = Float($1) unit = abbrevs.fetch($2.downcase) raise(NotImplementedError) unless %w[seconds minutes hours days weeks months years].include?(unit) size.public_send(unit) rescue # rubocop:disable Style/RescueStandardError raise(ArgumentError, "'#{string}' is not a valid duration") end |