metar-parser 1.5.0 → 1.6.0
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.
- checksums.yaml +4 -4
- data/README.md +6 -48
- data/Rakefile +2 -1
- data/lib/metar/data/base.rb +16 -10
- data/lib/metar/data/density_altitude.rb +16 -10
- data/lib/metar/data/direction.rb +10 -4
- data/lib/metar/data/distance.rb +27 -20
- data/lib/metar/data/lightning.rb +69 -60
- data/lib/metar/data/observer.rb +26 -20
- data/lib/metar/data/pressure.rb +28 -22
- data/lib/metar/data/remark.rb +146 -130
- data/lib/metar/data/runway_visible_range.rb +98 -78
- data/lib/metar/data/sky_condition.rb +68 -57
- data/lib/metar/data/speed.rb +21 -14
- data/lib/metar/data/station_code.rb +8 -4
- data/lib/metar/data/temperature.rb +21 -14
- data/lib/metar/data/temperature_and_dew_point.rb +22 -16
- data/lib/metar/data/time.rb +57 -47
- data/lib/metar/data/variable_wind.rb +30 -19
- data/lib/metar/data/vertical_visibility.rb +27 -21
- data/lib/metar/data/visibility.rb +91 -79
- data/lib/metar/data/visibility_remark.rb +16 -5
- data/lib/metar/data/weather_phenomenon.rb +92 -74
- data/lib/metar/data/wind.rb +105 -93
- data/lib/metar/data.rb +25 -23
- data/lib/metar/i18n.rb +5 -2
- data/lib/metar/parser.rb +46 -21
- data/lib/metar/raw.rb +32 -44
- data/lib/metar/report.rb +31 -20
- data/lib/metar/station.rb +28 -19
- data/lib/metar/version.rb +3 -1
- data/lib/metar.rb +2 -1
- data/locales/de.yml +1 -0
- data/locales/en.yml +1 -0
- data/locales/it.yml +1 -0
- data/locales/pt-BR.yml +1 -0
- data/spec/data/density_altitude_spec.rb +2 -1
- data/spec/data/distance_spec.rb +2 -1
- data/spec/data/lightning_spec.rb +26 -9
- data/spec/data/pressure_spec.rb +2 -0
- data/spec/data/remark_spec.rb +26 -9
- data/spec/data/runway_visible_range_spec.rb +71 -35
- data/spec/data/sky_condition_spec.rb +63 -19
- data/spec/data/speed_spec.rb +2 -0
- data/spec/data/temperature_spec.rb +2 -1
- data/spec/data/variable_wind_spec.rb +2 -0
- data/spec/data/vertical_visibility_spec.rb +4 -4
- data/spec/data/visibility_remark_spec.rb +2 -1
- data/spec/data/visibility_spec.rb +46 -25
- data/spec/data/weather_phenomenon_spec.rb +79 -24
- data/spec/data/wind_spec.rb +156 -38
- data/spec/i18n_spec.rb +2 -0
- data/spec/parser_spec.rb +192 -64
- data/spec/raw_spec.rb +40 -68
- data/spec/report_spec.rb +27 -25
- data/spec/spec_helper.rb +5 -6
- data/spec/station_spec.rb +43 -44
- metadata +56 -42
data/spec/raw_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'spec_helper'
|
3
4
|
|
4
5
|
require 'net/ftp'
|
@@ -29,7 +30,8 @@ describe Metar::Raw::Data do
|
|
29
30
|
|
30
31
|
context "when called without a time parameter" do
|
31
32
|
it "warns that the usage is deprecated" do
|
32
|
-
expect { described_class.new(raw_metar) }.
|
33
|
+
expect { described_class.new(raw_metar) }.
|
34
|
+
to output(/deprecated/).to_stderr
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
@@ -51,9 +53,12 @@ describe Metar::Raw::Metar do
|
|
51
53
|
expect(subject.time.day).to eq(31)
|
52
54
|
end
|
53
55
|
|
54
|
-
context "when the current day of month
|
56
|
+
context "when the current day of month " \
|
57
|
+
"is greater than the METAR's day of month" do
|
55
58
|
let(:call_time) { Time.parse("2016-04-11 16:35") }
|
56
|
-
let(:raw_metar)
|
59
|
+
let(:raw_metar) do
|
60
|
+
"OPPS 092359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011"
|
61
|
+
end
|
57
62
|
|
58
63
|
it "uses the date from the current month" do
|
59
64
|
expect(subject.time.year).to eq(2016)
|
@@ -76,26 +81,27 @@ describe Metar::Raw::Metar do
|
|
76
81
|
let(:raw_metar) { "OPPS 3123Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011" }
|
77
82
|
|
78
83
|
it "throws an error" do
|
79
|
-
expect { subject.time }
|
80
|
-
.to raise_error(RuntimeError, /6 digit/)
|
84
|
+
expect { subject.time }.to raise_error(RuntimeError, /6 digit/)
|
81
85
|
end
|
82
86
|
end
|
83
87
|
|
84
88
|
context "when the day of month in the datetime is > 31" do
|
85
|
-
let(:raw_metar)
|
89
|
+
let(:raw_metar) do
|
90
|
+
"OPPS 332359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011"
|
91
|
+
end
|
86
92
|
|
87
93
|
it "throws an error" do
|
88
|
-
expect { subject.time }
|
89
|
-
.to raise_error(RuntimeError, /at most 31/)
|
94
|
+
expect { subject.time }.to raise_error(RuntimeError, /at most 31/)
|
90
95
|
end
|
91
96
|
end
|
92
97
|
|
93
98
|
context "when the day of month in the datetime is 0" do
|
94
|
-
let(:raw_metar)
|
99
|
+
let(:raw_metar) do
|
100
|
+
"OPPS 002359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011"
|
101
|
+
end
|
95
102
|
|
96
103
|
it "throws an error" do
|
97
|
-
expect { subject.time }
|
98
|
-
.to raise_error(RuntimeError, /greater than 0/)
|
104
|
+
expect { subject.time }.to raise_error(RuntimeError, /greater than 0/)
|
99
105
|
end
|
100
106
|
end
|
101
107
|
end
|
@@ -106,80 +112,43 @@ describe Metar::Raw::Noaa do
|
|
106
112
|
|
107
113
|
let(:cccc) { "ESSB" }
|
108
114
|
let(:ftp) do
|
109
|
-
double(
|
115
|
+
double(
|
116
|
+
Net::FTP,
|
117
|
+
chdir: nil,
|
118
|
+
close: nil,
|
119
|
+
login: nil,
|
120
|
+
:passive= => nil,
|
121
|
+
retrbinary: nil
|
122
|
+
)
|
110
123
|
end
|
111
124
|
|
112
125
|
before do
|
113
126
|
allow(Net::FTP).to receive(:new) { ftp }
|
114
127
|
end
|
115
128
|
|
116
|
-
after do
|
117
|
-
Metar::Raw::Noaa.send(:class_variable_set, '@@connection', nil)
|
118
|
-
end
|
119
|
-
|
120
|
-
context '.connection' do
|
121
|
-
context 'uncached' do
|
122
|
-
it 'sets up the connection' do
|
123
|
-
Metar::Raw::Noaa.connect
|
124
|
-
|
125
|
-
expect(Net::FTP).to have_received(:new)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
context 'cached' do
|
130
|
-
before :each do
|
131
|
-
Metar::Raw::Noaa.send(:class_variable_set, '@@connection', ftp)
|
132
|
-
end
|
133
|
-
|
134
|
-
it 'does not connect to FTP' do
|
135
|
-
Metar::Raw::Noaa.connection
|
136
|
-
|
137
|
-
expect(Net::FTP).to_not have_received(:new)
|
138
|
-
end
|
139
|
-
|
140
|
-
it 'returns the cached connection' do
|
141
|
-
connection = Metar::Raw::Noaa.connection
|
142
|
-
|
143
|
-
expect(connection).to eq(ftp)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
context '.connect' do
|
149
|
-
it 'sets up the connection' do
|
150
|
-
Metar::Raw::Noaa.connect
|
151
|
-
|
152
|
-
expect(Net::FTP).to have_received(:new)
|
153
|
-
expect(ftp).to have_received(:login).with(no_args)
|
154
|
-
expect(ftp).to have_received(:chdir).with('data/observations/metar/stations')
|
155
|
-
expect(ftp).to have_received(:passive=).with(true)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
129
|
context '.fetch' do
|
160
130
|
before do
|
161
|
-
allow(ftp).
|
162
|
-
|
163
|
-
end
|
164
|
-
|
165
|
-
it 'uses the connection' do
|
166
|
-
Metar::Raw::Noaa.fetch('the_cccc')
|
167
|
-
|
168
|
-
expect(Net::FTP).to have_received(:new)
|
169
|
-
expect(ftp).to have_received(:close)
|
131
|
+
allow(ftp).
|
132
|
+
to receive(:retrbinary).and_yield("chunk 1\n").and_yield("chunk 2\n")
|
170
133
|
end
|
171
134
|
|
172
135
|
it 'downloads the raw report' do
|
173
136
|
Metar::Raw::Noaa.fetch('the_cccc')
|
174
137
|
|
175
|
-
expect(ftp).
|
176
|
-
|
138
|
+
expect(ftp).
|
139
|
+
to have_received(:retrbinary).
|
140
|
+
with('RETR the_cccc.TXT', kind_of(Integer))
|
177
141
|
end
|
178
142
|
|
179
143
|
it 'returns the data' do
|
180
144
|
raw = Metar::Raw::Noaa.fetch('the_cccc')
|
181
145
|
|
182
146
|
expect(raw).to eq("chunk 1\nchunk 2\n")
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'closes the connection' do
|
150
|
+
Metar::Raw::Noaa.fetch('the_cccc')
|
151
|
+
|
183
152
|
expect(ftp).to have_received(:close)
|
184
153
|
end
|
185
154
|
|
@@ -190,6 +159,7 @@ describe Metar::Raw::Noaa do
|
|
190
159
|
allow(ftp).to receive(:retrbinary) do |_args, &block|
|
191
160
|
@attempt += 1
|
192
161
|
raise Net::FTPTempError if @attempt == 1
|
162
|
+
|
193
163
|
block.call "chunk 1\n"
|
194
164
|
block.call "chunk 2\n"
|
195
165
|
end
|
@@ -244,7 +214,9 @@ describe Metar::Raw::Noaa do
|
|
244
214
|
context "times" do
|
245
215
|
let(:cccc) { "OPPS" }
|
246
216
|
let(:raw_time) { "2016/03/31 23:59" }
|
247
|
-
let(:raw_metar)
|
217
|
+
let(:raw_metar) do
|
218
|
+
"OPPS 312359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011"
|
219
|
+
end
|
248
220
|
|
249
221
|
specify "are parsed as UTC/GMT" do
|
250
222
|
expect(subject.time.zone).to eq("UTC").or eq("GMT")
|
data/spec/report_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require "spec_helper"
|
3
4
|
|
4
5
|
describe Metar::Report do
|
@@ -7,9 +8,9 @@ describe Metar::Report do
|
|
7
8
|
double(
|
8
9
|
Metar::Parser,
|
9
10
|
station_code: station_code,
|
10
|
-
date:
|
11
|
-
time:
|
12
|
-
observer:
|
11
|
+
date: Date.parse(metar_date),
|
12
|
+
time: Time.parse(metar_datetime),
|
13
|
+
observer: :real
|
13
14
|
)
|
14
15
|
end
|
15
16
|
let(:station_code) { "SSSS" }
|
@@ -22,7 +23,8 @@ describe Metar::Report do
|
|
22
23
|
end
|
23
24
|
|
24
25
|
before do
|
25
|
-
allow(Metar::Station).
|
26
|
+
allow(Metar::Station).
|
27
|
+
to receive(:find_by_cccc).with(station_code) { station }
|
26
28
|
end
|
27
29
|
|
28
30
|
subject { described_class.new(parser) }
|
@@ -75,15 +77,15 @@ describe Metar::Report do
|
|
75
77
|
|
76
78
|
context 'proxied from parser' do
|
77
79
|
context 'singly' do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
80
|
+
%i(
|
81
|
+
wind
|
82
|
+
variable_wind
|
83
|
+
visibility
|
84
|
+
minimum_visibility
|
85
|
+
vertical_visibility
|
86
|
+
temperature
|
87
|
+
dew_point
|
88
|
+
).each do |attribute|
|
87
89
|
example attribute do
|
88
90
|
allow(parser).to receive(attribute) { attribute.to_s }
|
89
91
|
|
@@ -173,17 +175,17 @@ describe Metar::Report do
|
|
173
175
|
end
|
174
176
|
|
175
177
|
it "returns the full report" do
|
176
|
-
expected =
|
177
|
-
name: Airport 1
|
178
|
-
country: Wwwwww
|
179
|
-
time: #{metar_time}
|
180
|
-
wind: wind
|
181
|
-
visibility: visibility
|
182
|
-
minimum visibility: min visibility
|
183
|
-
weather: pw
|
184
|
-
sky: sky2
|
185
|
-
temperature: temp
|
186
|
-
|
178
|
+
expected = <<-EXPECTED.gsub(/^\s{10}/, "")
|
179
|
+
name: Airport 1
|
180
|
+
country: Wwwwww
|
181
|
+
time: #{metar_time}
|
182
|
+
wind: wind
|
183
|
+
visibility: visibility
|
184
|
+
minimum visibility: min visibility
|
185
|
+
weather: pw
|
186
|
+
sky: sky2
|
187
|
+
temperature: temp
|
188
|
+
EXPECTED
|
187
189
|
expect(subject.to_s).to eq(expected)
|
188
190
|
end
|
189
191
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rspec'
|
2
4
|
|
3
5
|
if RUBY_VERSION > '1.9'
|
4
6
|
require 'simplecov'
|
5
|
-
if ENV[
|
7
|
+
if ENV['COVERAGE']
|
6
8
|
SimpleCov.start do
|
7
9
|
add_filter "/spec/"
|
8
10
|
end
|
@@ -13,15 +15,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/metar')
|
|
13
15
|
|
14
16
|
RSpec::Matchers.define :be_temperature_extreme do |extreme, value|
|
15
17
|
match do |remark|
|
16
|
-
if
|
18
|
+
if !remark.is_a?(Metar::Data::TemperatureExtreme)
|
17
19
|
false
|
18
20
|
elsif remark.extreme != extreme
|
19
21
|
false
|
20
|
-
elsif remark.value != value
|
21
|
-
false
|
22
22
|
else
|
23
|
-
|
23
|
+
remark.value == value
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
data/spec/station_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require "spec_helper"
|
3
4
|
|
4
5
|
require "stringio"
|
@@ -7,19 +8,48 @@ RSpec::Matchers.define :have_attribute do |attribute|
|
|
7
8
|
match do |object|
|
8
9
|
if !object.respond_to?(attribute)
|
9
10
|
false
|
10
|
-
elsif object.method(attribute).arity != 0
|
11
|
-
false
|
12
11
|
else
|
13
|
-
|
12
|
+
object.method(attribute).arity == 0
|
14
13
|
end
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
18
17
|
describe Metar::Station do
|
19
18
|
context "using structures" do
|
19
|
+
let(:response) { double(body: nsd_file) }
|
20
|
+
|
21
|
+
##
|
22
|
+
# NOAA Station list fields:
|
23
|
+
#
|
24
|
+
# 0 1 2 3 45 6 7 8 9 10 11 12 13
|
25
|
+
# PPPP;00;000;Airport P1;;Ppppp;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
26
|
+
#
|
27
|
+
# 0 - CCCC
|
28
|
+
# 1 - ?
|
29
|
+
# 2 - ?
|
30
|
+
# 3 - name of station
|
31
|
+
# 4 - state
|
32
|
+
# 5 - country
|
33
|
+
# 6 - ?
|
34
|
+
# 7 - latitude1
|
35
|
+
# 8 - longitude1
|
36
|
+
# 9 - latitude2
|
37
|
+
# 10 - longitude2
|
38
|
+
# 11 - ?
|
39
|
+
# 12 - ?
|
40
|
+
# 13 - ?
|
41
|
+
#
|
42
|
+
let(:nsd_file) do
|
43
|
+
<<-TEXT.gsub(/^\s{8}/, "")
|
44
|
+
PPPP;00;000;Airport P1;;Ppppp;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
45
|
+
AAAA;00;000;Airport A1;;Aaaaa;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
46
|
+
AAAB;00;000;Airport A2;;Aaaaa;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
47
|
+
BBBA;00;000;Airport B1;;Bbbbb;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
48
|
+
TEXT
|
49
|
+
end
|
50
|
+
|
20
51
|
before do
|
21
|
-
allow(
|
22
|
-
.with(Metar::Station::NOAA_STATION_LIST_URL) { nsd_file }
|
52
|
+
allow(Net::HTTP).to receive(:get_response) { response }
|
23
53
|
end
|
24
54
|
|
25
55
|
context ".countries" do
|
@@ -67,37 +97,6 @@ describe Metar::Station do
|
|
67
97
|
expect(aaaaa.map(&:cccc)).to eq(%w(AAAA AAAB))
|
68
98
|
end
|
69
99
|
end
|
70
|
-
|
71
|
-
##
|
72
|
-
# NOAA Station list fields:
|
73
|
-
#
|
74
|
-
# 0 1 2 3 45 6 7 8 9 10 11 12 13
|
75
|
-
# PPPP;00;000;Airport P1;;Ppppp;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
76
|
-
#
|
77
|
-
# 0 - CCCC
|
78
|
-
# 1 - ?
|
79
|
-
# 2 - ?
|
80
|
-
# 3 - name of station
|
81
|
-
# 4 - state
|
82
|
-
# 5 - country
|
83
|
-
# 6 - ?
|
84
|
-
# 7 - latitude1
|
85
|
-
# 8 - longitude1
|
86
|
-
# 9 - latitude2
|
87
|
-
# 10 - longitude2
|
88
|
-
# 11 - ?
|
89
|
-
# 12 - ?
|
90
|
-
# 13 - ?
|
91
|
-
#
|
92
|
-
def nsd_file
|
93
|
-
nsd_text = <<-EOT.gsub(/^\s{8}/, "")
|
94
|
-
PPPP;00;000;Airport P1;;Ppppp;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
95
|
-
AAAA;00;000;Airport A1;;Aaaaa;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
96
|
-
AAAB;00;000;Airport A2;;Aaaaa;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
97
|
-
BBBA;00;000;Airport B1;;Bbbbb;1;11-03S;055-24E;11-03S;055-24E;000;000;P\r
|
98
|
-
EOT
|
99
|
-
StringIO.new(nsd_text)
|
100
|
-
end
|
101
100
|
end
|
102
101
|
|
103
102
|
context ".to_longitude" do
|
@@ -133,13 +132,13 @@ describe Metar::Station do
|
|
133
132
|
end
|
134
133
|
let(:noaa_data) do
|
135
134
|
{
|
136
|
-
cccc:
|
137
|
-
name:
|
138
|
-
state:
|
139
|
-
country:
|
135
|
+
cccc: cccc,
|
136
|
+
name: name,
|
137
|
+
state: state,
|
138
|
+
country: country,
|
140
139
|
longitude: "055-24E",
|
141
|
-
latitude:
|
142
|
-
raw:
|
140
|
+
latitude: "11-03S",
|
141
|
+
raw: noaa_raw
|
143
142
|
}
|
144
143
|
end
|
145
144
|
|
@@ -185,7 +184,7 @@ describe Metar::Station do
|
|
185
184
|
let(:metar) do
|
186
185
|
"PAIL 061610Z 24006KT 1 3/4SM -SN BKN016 OVC030 M17/M20 A2910"
|
187
186
|
end
|
188
|
-
let(:time) { Date.new(2010,
|
187
|
+
let(:time) { Date.new(2010, 2, 6) }
|
189
188
|
let(:raw) { double(Metar::Raw, metar: metar, time: time) }
|
190
189
|
|
191
190
|
before do
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metar-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Yates
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.8.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: m9t
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,21 +39,21 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.3.5
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: net-ftp
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
type: :
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: pry-doc
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,21 +81,21 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 12.3.3
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 12.3.3
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rdoc
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,21 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '3.2'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '3.2'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - ">="
|
@@ -123,21 +137,21 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: simplecov
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '0'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: timecop
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - ">="
|
@@ -221,7 +235,7 @@ files:
|
|
221
235
|
homepage: https://github.com/joeyates/metar-parser
|
222
236
|
licenses: []
|
223
237
|
metadata: {}
|
224
|
-
post_install_message:
|
238
|
+
post_install_message:
|
225
239
|
rdoc_options: []
|
226
240
|
require_paths:
|
227
241
|
- lib
|
@@ -229,35 +243,35 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
229
243
|
requirements:
|
230
244
|
- - ">="
|
231
245
|
- !ruby/object:Gem::Version
|
232
|
-
version: 2.
|
246
|
+
version: 2.5.0
|
233
247
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
248
|
requirements:
|
235
249
|
- - ">="
|
236
250
|
- !ruby/object:Gem::Version
|
237
251
|
version: '0'
|
238
252
|
requirements: []
|
239
|
-
rubygems_version: 3.
|
240
|
-
signing_key:
|
253
|
+
rubygems_version: 3.1.6
|
254
|
+
signing_key:
|
241
255
|
specification_version: 4
|
242
256
|
summary: A Ruby gem for worldwide weather reports
|
243
257
|
test_files:
|
244
|
-
- spec/parser_spec.rb
|
245
|
-
- spec/station_spec.rb
|
246
|
-
- spec/i18n_spec.rb
|
247
|
-
- spec/raw_spec.rb
|
248
258
|
- spec/report_spec.rb
|
259
|
+
- spec/raw_spec.rb
|
260
|
+
- spec/data/wind_spec.rb
|
249
261
|
- spec/data/pressure_spec.rb
|
250
|
-
- spec/data/density_altitude_spec.rb
|
251
|
-
- spec/data/remark_spec.rb
|
252
262
|
- spec/data/weather_phenomenon_spec.rb
|
263
|
+
- spec/data/vertical_visibility_spec.rb
|
264
|
+
- spec/data/temperature_spec.rb
|
253
265
|
- spec/data/sky_condition_spec.rb
|
254
266
|
- spec/data/visibility_remark_spec.rb
|
255
267
|
- spec/data/runway_visible_range_spec.rb
|
256
|
-
- spec/data/variable_wind_spec.rb
|
257
|
-
- spec/data/wind_spec.rb
|
258
|
-
- spec/data/lightning_spec.rb
|
259
|
-
- spec/data/vertical_visibility_spec.rb
|
260
|
-
- spec/data/visibility_spec.rb
|
261
|
-
- spec/data/temperature_spec.rb
|
262
268
|
- spec/data/speed_spec.rb
|
269
|
+
- spec/data/visibility_spec.rb
|
270
|
+
- spec/data/remark_spec.rb
|
271
|
+
- spec/data/density_altitude_spec.rb
|
263
272
|
- spec/data/distance_spec.rb
|
273
|
+
- spec/data/variable_wind_spec.rb
|
274
|
+
- spec/data/lightning_spec.rb
|
275
|
+
- spec/parser_spec.rb
|
276
|
+
- spec/station_spec.rb
|
277
|
+
- spec/i18n_spec.rb
|