Class: SimpleMetarParser::Visibility

Inherits:
Base
  • Object
show all
Defined in:
lib/simple_metar_parser/metar/visibility.rb

Constant Summary collapse

MAX_VISIBILITY =

max visibility

10_000
NEARLY_MAX_VISIBILITY =

If visibility is greater than this it assume it is maximum

9_500

Instance Attribute Summary collapse

Attributes inherited from Base

#parent

Instance Method Summary collapse

Methods inherited from Base

#initialize, #post_process

Constructor Details

This class inherits a constructor from SimpleMetarParser::Base

Instance Attribute Details

#visibilityObject (readonly)

Returns the value of attribute visibility.



16
17
18
# File 'lib/simple_metar_parser/metar/visibility.rb', line 16

def visibility
  @visibility
end

Instance Method Details

#decode_split(s) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/simple_metar_parser/metar/visibility.rb', line 18

def decode_split(s)
  # Visibility in meters

  # Europa
  if s =~ /^(\d{4})$/
    @visibility = $1.to_i
  end

  # US
  if s =~ /^(\d{1,3})\/?(\d{0,2})SM$/
    if $2 == ""
      @visibility = $1.to_i * 1600.0
    else
      @visibility = $1.to_f * 1600.0 / $2.to_f
    end
  end

  # constant max value
  if @visibility.to_i >= NEARLY_MAX_VISIBILITY
    @visibility = MAX_VISIBILITY
  end

  if s =~ /^(CAVOK)$/
    @visibility = MAX_VISIBILITY
  end
end

#resetObject



12
13
14
# File 'lib/simple_metar_parser/metar/visibility.rb', line 12

def reset
  @visibility = nil
end