Class: CurrentMetar::Metar
- Inherits:
-
Object
- Object
- CurrentMetar::Metar
- Defined in:
- lib/current_metar/metar.rb
Constant Summary collapse
- METAR_ATTRIBUTE_MAPPING =
{ :wind_speed => "wind_speed_kt", :wind_direction => "wind_dir_degrees", :wind_gust_speed => "wind_gust_kt", :visibility => "visibility_statute_mi", :icao => 'station_id' }
Instance Attribute Summary collapse
-
#available ⇒ Object
Returns the value of attribute available.
-
#icao ⇒ Object
Returns the value of attribute icao.
-
#no_results ⇒ Object
Returns the value of attribute no_results.
-
#observation_time ⇒ Object
Returns the value of attribute observation_time.
-
#temperature ⇒ Object
Returns the value of attribute temperature.
-
#visibility ⇒ Object
Returns the value of attribute visibility.
-
#wind_direction ⇒ Object
Returns the value of attribute wind_direction.
-
#wind_gust_speed ⇒ Object
Returns the value of attribute wind_gust_speed.
-
#wind_speed ⇒ Object
Returns the value of attribute wind_speed.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#available ⇒ Object
Returns the value of attribute available.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def available @available end |
#icao ⇒ Object
Returns the value of attribute icao.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def icao @icao end |
#no_results ⇒ Object
Returns the value of attribute no_results.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def no_results @no_results end |
#observation_time ⇒ Object
Returns the value of attribute observation_time.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def observation_time @observation_time end |
#temperature ⇒ Object
Returns the value of attribute temperature.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def temperature @temperature end |
#visibility ⇒ Object
Returns the value of attribute visibility.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def visibility @visibility end |
#wind_direction ⇒ Object
Returns the value of attribute wind_direction.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def wind_direction @wind_direction end |
#wind_gust_speed ⇒ Object
Returns the value of attribute wind_gust_speed.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def wind_gust_speed @wind_gust_speed end |
#wind_speed ⇒ Object
Returns the value of attribute wind_speed.
4 5 6 |
# File 'lib/current_metar/metar.rb', line 4 def wind_speed @wind_speed end |
Class Method Details
.get_metar(icao) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/current_metar/metar.rb', line 15 def self.(icao) = CurrentMetar::Metar.new() .icao = icao begin = REXML::Document.new(CurrentMetar::Request.query_adds(.icao)) if .root.elements['data'].attributes.get_attribute('num_results').value == '0' .available = false .no_results = true else .root.elements.each("data/METAR") do || .() end .available = true .no_results = false end rescue .available = false .no_results = false ensure return end end |
.new_from_xml(metar_xml) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/current_metar/metar.rb', line 38 def self.new_from_xml() = CurrentMetar::Metar.new() begin .() .available = true .no_results = false rescue .availabe = false .no_results = false ensure return end end |
Instance Method Details
#parse_metar_xml(metar_xml) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'lib/current_metar/metar.rb', line 52 def () unless .elements['temp_c'].nil? self.temperature = (9/5.0 * .elements['temp_c'].text.to_i + 32).round end unless .elements['observation_time'].nil? self.observation_time = Time.parse(.elements['observation_time'].text) end self.parse_standard_attributes() end |
#parse_standard_attributes(metar_xml) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/current_metar/metar.rb', line 62 def parse_standard_attributes() METAR_ATTRIBUTE_MAPPING.each do |key, value| unless .elements[value].nil? self.send( "#{key}=", .elements[value].text) end end end |