Class: Gribr::Degrib::ProbeRecord
- Inherits:
-
Struct
- Object
- Struct
- Gribr::Degrib::ProbeRecord
- Includes:
- RegexpParser
- Defined in:
- lib/gribr/degrib/probe_record.rb
Constant Summary collapse
- REGEXP_ELEMENT =
Regexp.new("(.*)").freeze
- REGEXP_FLOAT =
Regexp.new("((\\+|-)?\\d+.?\\d*)").freeze
- REGEXP_LOCATION =
Regexp.new("((#{REGEXP_FLOAT}),(#{REGEXP_FLOAT}))").freeze
- REGEXP_TIMESTAMP =
Regexp.new("(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})").freeze
- REGEXP_UNIT =
Regexp.new("([^)]+)").freeze
- SEPARATOR =
"\t".freeze
- TIME_FORMAT =
"%Y-%m-%d %H:%M:%S".freeze
Instance Attribute Summary collapse
-
#element ⇒ Object
Returns the value of attribute element.
-
#latitude ⇒ Object
Returns the value of attribute latitude.
-
#longitude ⇒ Object
Returns the value of attribute longitude.
-
#reference_time ⇒ Object
Returns the value of attribute reference_time.
-
#unit ⇒ Object
Returns the value of attribute unit.
-
#valid_time ⇒ Object
Returns the value of attribute valid_time.
-
#value ⇒ Object
Returns the value of attribute value.
Class Method Summary collapse
Instance Method Summary collapse
Methods included from RegexpParser
Instance Attribute Details
#element ⇒ Object
Returns the value of attribute element
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def element @element end |
#latitude ⇒ Object
Returns the value of attribute latitude
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def latitude @latitude end |
#longitude ⇒ Object
Returns the value of attribute longitude
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def longitude @longitude end |
#reference_time ⇒ Object
Returns the value of attribute reference_time
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def reference_time @reference_time end |
#unit ⇒ Object
Returns the value of attribute unit
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def unit @unit end |
#valid_time ⇒ Object
Returns the value of attribute valid_time
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def valid_time @valid_time end |
#value ⇒ Object
Returns the value of attribute value
6 7 8 |
# File 'lib/gribr/degrib/probe_record.rb', line 6 def value @value end |
Class Method Details
.build(match_data) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/gribr/degrib/probe_record.rb', line 31 def build(match_data) if match_data record = new record.latitude = match_data[3].to_f record.longitude = match_data[6].to_f record.element = match_data[8] record.unit = match_data[9] record.reference_time = Time.utc(*match_data[10..14].map(&:to_i)) record.valid_time = Time.utc(*match_data[15..19].map(&:to_i)) record.value = match_data[20].to_f record end end |
.regexp ⇒ Object
47 48 49 |
# File 'lib/gribr/degrib/probe_record.rb', line 47 def regexp @regexp ||= Regexp.new("\\(#{REGEXP_LOCATION}\\),\\s+#{REGEXP_ELEMENT}\\[#{REGEXP_UNIT}\\],\\s+#{REGEXP_TIMESTAMP},\\s+#{REGEXP_TIMESTAMP},\\s+#{REGEXP_FLOAT}").freeze end |
Instance Method Details
#to_s(options = {}) ⇒ Object
19 20 21 |
# File 'lib/gribr/degrib/probe_record.rb', line 19 def to_s( = {}) [ latitude.to_s, longitude.to_s, element, unit, format_time(reference_time, ), format_time(valid_time, ), value.to_s ].join(SEPARATOR) end |