Class: Parser

Inherits:
Object
  • Object
show all
Defined in:
src/parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(date, msg) ⇒ Parser

Returns a new instance of Parser.



49
50
51
52
# File 'src/parser.rb', line 49

def initialize(date, msg)
  raw = Metar::Raw::Data.new(msg, DateTime.parse(date))
  @parser = Metar::Parser.new(raw)
end

Instance Method Details

#metar(method = :represent) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
# File 'src/parser.rb', line 59

def metar(method = :represent)
  @parser.instance_eval do
    attr = { datetime: time } # station_code: station_code, #metar: metar,
    %i( minimum_visibility observer sea_level_pressure temperature dew_point visibility variable_wind vertical_visibility wind
      present_weather recent_weather runway_visible_range sky_conditions remarks)
      .each do |key|
      attr[key] = self.send(key)&.send(method)
    end
    attr[:cavok] = 'CAVOK' if cavok?
    attr
  end
end

#summaryObject



54
55
56
57
# File 'src/parser.rb', line 54

def summary
  to_s = self.metar :to_s
  to_s.reject{ _2.nil? || _2.to_s.empty?  }.map{ "#{_1}: #{_2}"}.join ', '
end