Class: Metar::Report
- Inherits:
-
Object
- Object
- Metar::Report
- Defined in:
- lib/metar/report.rb
Constant Summary collapse
- ATTRIBUTES =
%i( station_name station_country time wind visibility minimum_visibility present_weather sky_summary temperature ).freeze
Instance Attribute Summary collapse
-
#parser ⇒ Object
readonly
Returns the value of attribute parser.
-
#station ⇒ Object
readonly
Returns the value of attribute station.
Instance Method Summary collapse
- #date ⇒ Object
- #dew_point ⇒ Object
-
#initialize(parser) ⇒ Report
constructor
A new instance of Report.
- #minimum_visibility ⇒ Object
- #observer ⇒ Object
- #present_weather ⇒ Object
- #remarks ⇒ Object
- #runway_visible_range ⇒ Object
- #sea_level_pressure ⇒ Object
- #sky_conditions ⇒ Object
- #sky_summary ⇒ Object
- #station_code ⇒ Object
- #station_country ⇒ Object
- #station_name ⇒ Object
- #temperature ⇒ Object
- #time ⇒ Object
- #to_s ⇒ Object
- #variable_wind ⇒ Object
- #vertical_visibility ⇒ Object
- #visibility ⇒ Object
- #wind ⇒ Object
Constructor Details
#initialize(parser) ⇒ Report
Returns a new instance of Report.
21 22 23 24 25 |
# File 'lib/metar/report.rb', line 21 def initialize(parser) @parser = parser # TODO: parser should return the station @station = Station.find_by_cccc(@parser.station_code) end |
Instance Attribute Details
#parser ⇒ Object (readonly)
Returns the value of attribute parser.
19 20 21 |
# File 'lib/metar/report.rb', line 19 def parser @parser end |
#station ⇒ Object (readonly)
Returns the value of attribute station.
19 20 21 |
# File 'lib/metar/report.rb', line 19 def station @station end |
Instance Method Details
#date ⇒ Object
39 40 41 |
# File 'lib/metar/report.rb', line 39 def date I18n.l(@parser.date) end |
#dew_point ⇒ Object
98 99 100 |
# File 'lib/metar/report.rb', line 98 def dew_point @parser.dew_point.to_s end |
#minimum_visibility ⇒ Object
66 67 68 |
# File 'lib/metar/report.rb', line 66 def minimum_visibility @parser.minimum_visibility.to_s end |
#observer ⇒ Object
50 51 52 |
# File 'lib/metar/report.rb', line 50 def observer I18n.t('metar.observer.' + @parser.observer.to_s) end |
#present_weather ⇒ Object
74 75 76 |
# File 'lib/metar/report.rb', line 74 def present_weather @parser.present_weather.join(', ') end |
#remarks ⇒ Object
106 107 108 |
# File 'lib/metar/report.rb', line 106 def remarks @parser.remarks.join(', ') end |
#runway_visible_range ⇒ Object
70 71 72 |
# File 'lib/metar/report.rb', line 70 def runway_visible_range @parser.runway_visible_range.map(&:to_s).join(', ') end |
#sea_level_pressure ⇒ Object
102 103 104 |
# File 'lib/metar/report.rb', line 102 def sea_level_pressure @parser.sea_level_pressure.value.to_s end |
#sky_conditions ⇒ Object
86 87 88 |
# File 'lib/metar/report.rb', line 86 def sky_conditions @parser.sky_conditions.map(&:to_s).join(', ') end |
#sky_summary ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/metar/report.rb', line 78 def sky_summary if @parser.sky_conditions.empty? return I18n.t('metar.sky_conditions.clear skies') end @parser.sky_conditions[-1].to_summary end |
#station_code ⇒ Object
35 36 37 |
# File 'lib/metar/report.rb', line 35 def station_code @parser.station_code end |
#station_country ⇒ Object
31 32 33 |
# File 'lib/metar/report.rb', line 31 def station_country @station.country end |
#station_name ⇒ Object
27 28 29 |
# File 'lib/metar/report.rb', line 27 def station_name @station.name end |
#temperature ⇒ Object
94 95 96 |
# File 'lib/metar/report.rb', line 94 def temperature @parser.temperature.to_s end |
#time ⇒ Object
43 44 45 46 47 48 |
# File 'lib/metar/report.rb', line 43 def time format( "%<hour>u:%02<min>u", hour: @parser.time.hour, min: @parser.time.min ) end |
#to_s ⇒ Object
110 111 112 113 114 115 116 |
# File 'lib/metar/report.rb', line 110 def to_s attributes.collect do |attribute| I18n.t('metar.' + attribute[:attribute].to_s + '.title') + ': ' + attribute[:value] end.join("\n") + "\n" end |
#variable_wind ⇒ Object
58 59 60 |
# File 'lib/metar/report.rb', line 58 def variable_wind @parser.variable_wind.to_s end |
#vertical_visibility ⇒ Object
90 91 92 |
# File 'lib/metar/report.rb', line 90 def vertical_visibility @parser.vertical_visibility.to_s end |
#visibility ⇒ Object
62 63 64 |
# File 'lib/metar/report.rb', line 62 def visibility @parser.visibility.to_s end |
#wind ⇒ Object
54 55 56 |
# File 'lib/metar/report.rb', line 54 def wind @parser.wind.to_s end |