class Metarman::MetarParser
Public Class Methods
new(wx)
click to toggle source
# File lib/metarman/metar_parser.rb, line 3 def initialize(wx) @raw = wx @result = {} end
Public Instance Methods
execute()
click to toggle source
ToDo::Rainy or Snow condition ToDo::After QNH ToDo::Refactor This logic is so slowy
# File lib/metarman/metar_parser.rb, line 11 def execute orig = @raw.split(" ") orig.each do |e| if /\d{5}[KT]/ === e @result[:wind_dir] = e[0..2] @result[:wind_spd] = e[3..4] elsif /\d{3}[V]\d{3}/ === e @result[:wind_valuable_min] = e[0..2] @result[:wind_valuable_max] = e[4..6] elsif /^\d{4}$/ === e @result[:visibility] = e elsif /(CAVOK)/ === e @result[:cavok] = true elsif /(SKC)/ === e @result[:skc] = true elsif /(FEW)\d{3}/ === e @result[:few] = e[3..5] elsif /(SCT)\d{3}/ === e @result[:sct] = e[3..5] elsif /(BKN)\d{3}/ === e @result[:bkn] = e[3..5] elsif /(OVC)\d{3}/ === e @result[:ovc] = e[3..5] elsif /(VV)\d{3}/ === e @result[:vv] = e[3..4] elsif /^\d{2}[\/]d{2}$/ === e @result[:temperture] = e[0..1] @result[:dewpoint] = e[3..4] elsif /^[Q]\d{4}$/ === e @result[:qnh] = e[1..4] end end @result end