Method: WeatherData::Temperature#parse

Defined in:
lib/weather_data/temperature.rb

#parse(s) ⇒ Object

Raises:

  • (ArgumentError)


16
17
18
19
20
21
22
# File 'lib/weather_data/temperature.rb', line 16

def parse(s)
  degrees, units = s.match(/([+-]?\d+(?:\.\d+)?)\s*(°?#{CELSIUS}|°?#{FAHRENHEIT}|#{KELVIN})\b/u).to_a[1..2]

  raise ArgumentError.new(%Q{"#{s}" doesn't contain temperature}) unless degrees && units

  units_class(units).new(degrees.to_f)
end