metar-parser 1.5.0 → 1.7.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -48
  3. data/Rakefile +2 -1
  4. data/lib/metar/data/base.rb +16 -10
  5. data/lib/metar/data/density_altitude.rb +16 -10
  6. data/lib/metar/data/direction.rb +10 -4
  7. data/lib/metar/data/distance.rb +27 -20
  8. data/lib/metar/data/lightning.rb +69 -60
  9. data/lib/metar/data/observer.rb +26 -20
  10. data/lib/metar/data/pressure.rb +28 -22
  11. data/lib/metar/data/remark.rb +146 -130
  12. data/lib/metar/data/runway_visible_range.rb +98 -78
  13. data/lib/metar/data/sky_condition.rb +68 -57
  14. data/lib/metar/data/speed.rb +21 -14
  15. data/lib/metar/data/station_code.rb +8 -4
  16. data/lib/metar/data/temperature.rb +21 -14
  17. data/lib/metar/data/temperature_and_dew_point.rb +22 -16
  18. data/lib/metar/data/time.rb +57 -47
  19. data/lib/metar/data/variable_wind.rb +30 -19
  20. data/lib/metar/data/vertical_visibility.rb +27 -21
  21. data/lib/metar/data/visibility.rb +91 -79
  22. data/lib/metar/data/visibility_remark.rb +16 -5
  23. data/lib/metar/data/weather_phenomenon.rb +92 -74
  24. data/lib/metar/data/wind.rb +105 -93
  25. data/lib/metar/data.rb +25 -23
  26. data/lib/metar/i18n.rb +5 -2
  27. data/lib/metar/parser.rb +46 -21
  28. data/lib/metar/raw.rb +32 -44
  29. data/lib/metar/report.rb +31 -20
  30. data/lib/metar/station.rb +29 -20
  31. data/lib/metar/version.rb +3 -1
  32. data/lib/metar.rb +2 -1
  33. data/locales/de.yml +1 -0
  34. data/locales/en.yml +1 -0
  35. data/locales/it.yml +1 -0
  36. data/locales/pt-BR.yml +1 -0
  37. data/spec/data/density_altitude_spec.rb +2 -1
  38. data/spec/data/distance_spec.rb +2 -1
  39. data/spec/data/lightning_spec.rb +26 -9
  40. data/spec/data/pressure_spec.rb +2 -0
  41. data/spec/data/remark_spec.rb +26 -9
  42. data/spec/data/runway_visible_range_spec.rb +71 -35
  43. data/spec/data/sky_condition_spec.rb +63 -19
  44. data/spec/data/speed_spec.rb +2 -0
  45. data/spec/data/temperature_spec.rb +2 -1
  46. data/spec/data/variable_wind_spec.rb +2 -0
  47. data/spec/data/vertical_visibility_spec.rb +4 -4
  48. data/spec/data/visibility_remark_spec.rb +2 -1
  49. data/spec/data/visibility_spec.rb +46 -25
  50. data/spec/data/weather_phenomenon_spec.rb +79 -24
  51. data/spec/data/wind_spec.rb +156 -38
  52. data/spec/i18n_spec.rb +2 -0
  53. data/spec/parser_spec.rb +192 -64
  54. data/spec/raw_spec.rb +40 -68
  55. data/spec/report_spec.rb +27 -25
  56. data/spec/spec_helper.rb +5 -6
  57. data/spec/station_spec.rb +92 -52
  58. metadata +53 -39
data/spec/raw_spec.rb CHANGED
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
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) }.to output(/deprecated/).to_stderr
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 is greater than the METAR's day of month" do
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) { "OPPS 092359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011" }
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) { "OPPS 332359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011" }
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) { "OPPS 002359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011" }
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(Net::FTP, login: nil, chdir: nil, :passive= => nil, retrbinary: nil)
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).to receive(:retrbinary).and_yield("chunk 1\n").and_yield("chunk 2\n")
162
- allow(ftp).to receive(:close)
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).to have_received(:retrbinary).with('RETR the_cccc.TXT', kind_of(Fixnum))
176
- expect(ftp).to have_received(:close)
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) { "OPPS 312359Z 23006KT 4000 HZ SCT040 SCT100 17/12 Q1011" }
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
- # encoding: utf-8
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: Date.parse(metar_date),
11
- time: Time.parse(metar_datetime),
12
- observer: :real
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).to receive(:find_by_cccc).with(station_code) { 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
- :wind,
80
- :variable_wind,
81
- :visibility,
82
- :minimum_visibility,
83
- :vertical_visibility,
84
- :temperature,
85
- :dew_point,
86
- ].each do |attribute|
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 = <<EOT
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
- EOT
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[ 'COVERAGE' ]
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 not remark.is_a?(Metar::Data::TemperatureExtreme)
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
- true
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
- # encoding: utf-8
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
- true
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(Metar::Station).to receive(:open)
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
@@ -105,6 +104,12 @@ describe Metar::Station do
105
104
  expect(Metar::Station.to_longitude("055-24E")).to eq(55.4)
106
105
  end
107
106
 
107
+ context "with Western values" do
108
+ it "returns negative results" do
109
+ expect(Metar::Station.to_longitude("055-24W")).to eq(-55.4)
110
+ end
111
+ end
112
+
108
113
  it "returns nil for badly formed strings" do
109
114
  expect(Metar::Station.to_longitude("aaa")).to be_nil
110
115
  end
@@ -112,7 +117,13 @@ describe Metar::Station do
112
117
 
113
118
  context ".to_latitude" do
114
119
  it "converts strings to latitude" do
115
- expect(Metar::Station.to_latitude("11-03S")).to eq(-11.05)
120
+ expect(Metar::Station.to_latitude("11-03N")).to eq(11.05)
121
+ end
122
+
123
+ context "with Southern values" do
124
+ it "returns negative results" do
125
+ expect(Metar::Station.to_latitude("11-03S")).to eq(-11.05)
126
+ end
116
127
  end
117
128
 
118
129
  it "returns nil for badly formed strings" do
@@ -124,22 +135,35 @@ describe Metar::Station do
124
135
  let(:name) { "Station name" }
125
136
  let(:state) { "State" }
126
137
  let(:country) { "Country" }
138
+ let(:longitude) { "055-24E" }
139
+ let(:latitude) { "11-03N" }
127
140
  let(:noaa_raw) do
128
- cccc +
129
- ";00;000;" +
130
- name + ";" +
131
- state + ";" +
132
- country + ";1;11-03S;055-24E;11-03S;055-24E;000;000;P"
141
+ [
142
+ cccc,
143
+ "00",
144
+ "000",
145
+ name,
146
+ state,
147
+ country,
148
+ "1",
149
+ latitude,
150
+ longitude,
151
+ latitude,
152
+ longitude,
153
+ "000",
154
+ "000",
155
+ "P"
156
+ ].join(";")
133
157
  end
134
158
  let(:noaa_data) do
135
159
  {
136
- cccc: cccc,
137
- name: name,
138
- state: state,
139
- country: country,
140
- longitude: "055-24E",
141
- latitude: "11-03S",
142
- raw: noaa_raw,
160
+ cccc: cccc,
161
+ name: name,
162
+ state: state,
163
+ country: country,
164
+ longitude: longitude,
165
+ latitude: latitude,
166
+ raw: noaa_raw
143
167
  }
144
168
  end
145
169
 
@@ -176,8 +200,24 @@ describe Metar::Station do
176
200
  specify { expect(subject.state).to eq(state) }
177
201
  specify { expect(subject.country).to eq(country) }
178
202
  specify { expect(subject.longitude).to eq(55.4) }
179
- specify { expect(subject.latitude).to eq(-11.05) }
203
+ specify { expect(subject.latitude).to eq(11.05) }
180
204
  specify { expect(subject.raw).to eq(noaa_raw) }
205
+
206
+ context "when longitude is Western" do
207
+ let(:longitude) { "055-24W" }
208
+
209
+ it "is parsed as negative" do
210
+ expect(subject.longitude).to eq(-55.4)
211
+ end
212
+ end
213
+
214
+ context "When latitude is Southern" do
215
+ let(:latitude) { "11-03S" }
216
+
217
+ it "is parsed as negative" do
218
+ expect(subject.latitude).to eq(-11.05)
219
+ end
220
+ end
181
221
  end
182
222
  end
183
223
 
@@ -185,7 +225,7 @@ describe Metar::Station do
185
225
  let(:metar) do
186
226
  "PAIL 061610Z 24006KT 1 3/4SM -SN BKN016 OVC030 M17/M20 A2910"
187
227
  end
188
- let(:time) { Date.new(2010, 02, 06) }
228
+ let(:time) { Date.new(2010, 2, 6) }
189
229
  let(:raw) { double(Metar::Raw, metar: metar, time: time) }
190
230
 
191
231
  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.5.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-29 00:00:00.000000000 Z
11
+ date: 2023-03-23 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.7.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.7.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: rspec
42
+ name: net-ftp
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.2'
48
- type: :development
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: '3.2'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: simplecov
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: rubocop
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: timecop
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
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: '0'
96
+ version: 12.3.3
97
97
  - !ruby/object:Gem::Dependency
98
- name: pry
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: pry-doc
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: rake
140
+ name: simplecov
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - "<"
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
- version: '11.0'
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: '11.0'
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
- name: rdoc
154
+ name: timecop
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
@@ -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.2.0
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.0.3
253
+ rubygems_version: 3.0.3.1
240
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