Module: Familia::Refinements::TimeLiterals::StringMethods

Defined in:
lib/familia/refinements/time_literals.rb

Instance Method Summary collapse

Instance Method Details

#in_secondsFloat?

Converts string time representation to seconds

Examples:

"60m".in_seconds #=> 3600.0
"2.5h".in_seconds #=> 9000.0
"1y".in_seconds #=> 31536000.0

Returns:

  • (Float, nil)

    Time in seconds or nil if invalid



271
272
273
274
275
276
277
278
# File 'lib/familia/refinements/time_literals.rb', line 271

def in_seconds
  quantity, unit = scan(/([\d.]+)([a-zA-Zμs]+)?/).flatten
  return nil unless quantity

  quantity = quantity.to_f
  unit ||= 's'
  TimeLiterals.convert_to_seconds(quantity, unit)
end