metar-parser 0.9.10 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/metar.rb +6 -5
- data/lib/metar/parser.rb +5 -3
- data/lib/metar/raw.rb +25 -8
- data/lib/metar/report.rb +2 -0
- data/lib/metar/version.rb +1 -1
- metadata +3 -3
data/lib/metar.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require 'metar/raw'
|
2
|
+
require 'metar/station'
|
3
|
+
require 'metar/parser'
|
4
|
+
require 'metar/report'
|
5
|
+
require 'metar/version'
|
6
6
|
|
7
7
|
module Metar
|
8
8
|
|
@@ -15,3 +15,4 @@ module Metar
|
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
18
|
+
|
data/lib/metar/parser.rb
CHANGED
@@ -92,12 +92,14 @@ module Metar
|
|
92
92
|
parser
|
93
93
|
end
|
94
94
|
|
95
|
-
attr_reader :
|
95
|
+
attr_reader :raw, :metar, :time
|
96
|
+
attr_reader :station_code, :observer, :wind, :variable_wind, :visibility, :runway_visible_range,
|
96
97
|
:present_weather, :sky_conditions, :vertical_visibility, :temperature, :dew_point, :sea_level_pressure, :remarks
|
97
98
|
|
98
99
|
def initialize(raw)
|
99
|
-
@
|
100
|
-
@
|
100
|
+
@raw = raw
|
101
|
+
@metar = raw.metar.clone
|
102
|
+
@time = raw.time.clone
|
101
103
|
analyze
|
102
104
|
end
|
103
105
|
|
data/lib/metar/raw.rb
CHANGED
@@ -9,13 +9,16 @@ module Metar
|
|
9
9
|
|
10
10
|
class << self
|
11
11
|
|
12
|
-
|
13
12
|
def cache_connection
|
14
13
|
@@connection = connection
|
15
14
|
end
|
16
15
|
|
17
16
|
def connection
|
18
17
|
return @@connection if @@connection
|
18
|
+
connect
|
19
|
+
end
|
20
|
+
|
21
|
+
def connect
|
19
22
|
@@connection = Net::FTP.new('tgftp.nws.noaa.gov')
|
20
23
|
@@connection.login
|
21
24
|
@@connection.chdir('data/observations/metar/stations')
|
@@ -24,11 +27,20 @@ module Metar
|
|
24
27
|
end
|
25
28
|
|
26
29
|
def fetch( cccc )
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
+
attempts = 0
|
31
|
+
while attempts < 2
|
32
|
+
begin
|
33
|
+
s = ''
|
34
|
+
connection.retrbinary( "RETR #{ cccc }.TXT", 1024 ) do | chunk |
|
35
|
+
s << chunk
|
36
|
+
end
|
37
|
+
return s
|
38
|
+
rescue Net::FTPTempError, EOFError => e
|
39
|
+
connect
|
40
|
+
attempts += 1
|
41
|
+
end
|
30
42
|
end
|
31
|
-
|
43
|
+
raise "Net::FTP.retrbinary failed #{attempts} times"
|
32
44
|
end
|
33
45
|
|
34
46
|
end
|
@@ -54,6 +66,11 @@ module Metar
|
|
54
66
|
@time
|
55
67
|
end
|
56
68
|
|
69
|
+
def raw_time
|
70
|
+
fetch
|
71
|
+
@raw_time
|
72
|
+
end
|
73
|
+
|
57
74
|
def metar
|
58
75
|
fetch
|
59
76
|
@metar
|
@@ -68,9 +85,9 @@ module Metar
|
|
68
85
|
end
|
69
86
|
|
70
87
|
def parse( data )
|
71
|
-
@data
|
72
|
-
|
73
|
-
@time
|
88
|
+
@data = data
|
89
|
+
@raw_time, @metar = @data.split( "\n" )
|
90
|
+
@time = Time.parse( @raw_time )
|
74
91
|
end
|
75
92
|
|
76
93
|
end
|
data/lib/metar/report.rb
CHANGED
data/lib/metar/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metar-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 45
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 11
|
10
|
+
version: 0.9.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joe Yates
|