# File lib/wx/groups.rb, line 234 def initialize(raw) r = /^([-+]|VC)?(MI|PR|BC|DR|BL|SH|TS|FZ)?((DZ|RA|SN|SG|IC|PE|PL|GR|GS|UP)*|(BR|FG|FU|VA|DU|SA|HZ|PY)*|(PO|SQ|FC|SS|DS)*)$/ raise ArgumentError unless raw =~ r case $1 when '-' @intensity = :light when nil @intensity = :moderate when '+' @intensity = :heavy when 'VC' @intensity = :vicinity end @descriptor = $2 @phenomena = [] s = $3 until s.empty? @phenomena.push(s.slice!(0..1)) end end