notam 1.1.5 → 1.2.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/CHANGELOG.md +26 -13
- data/README.md +10 -15
- data/lib/locales/en.yml +16 -16
- data/lib/notam/schedule.rb +3 -3
- data/lib/notam/translation.rb +3 -5
- data/lib/notam/version.rb +1 -1
- data/lib/tasks/fixtures.rake +9 -4
- metadata +7 -29
- checksums.yaml.gz.sig +0 -5
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1f6ca70e125218801ceb20789fc4753e9c661f8a34c051959c440e67046fd96
|
4
|
+
data.tar.gz: 6a29b9451886c77b9b50e64308a4bf366281c5b37a36db3473d54e95ad9a1463
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f44de736e5a038b821feaf563bc928d91bd869c2d4678df4ec7cdd540f4f668fe628402870ff61f21dc44212a1c0117dd2524752673ebe67f12c30681f6faeb
|
7
|
+
data.tar.gz: 6414d39731b2472c88a45322deff941854fc486e35b44362bf23d453cb3b4e520a549dfd2c6e45910b81bd19693ca8cc0e4595d8111929d7fb57368a7b90eed8
|
data/CHANGELOG.md
CHANGED
@@ -2,71 +2,84 @@
|
|
2
2
|
|
3
3
|
Nothing so far
|
4
4
|
|
5
|
+
## 1.2.0
|
6
|
+
|
7
|
+
### Changes
|
8
|
+
* Drop certs
|
9
|
+
* Add action for trusted release
|
10
|
+
* Update Q codes as per AIRAC 2412
|
11
|
+
|
12
|
+
## 1.1.6
|
13
|
+
|
14
|
+
### Changes
|
15
|
+
* Update Ruby to 3.4
|
16
|
+
* Add ignore list for fixtures broken upstream
|
17
|
+
|
5
18
|
## 1.1.5
|
6
19
|
|
7
|
-
|
20
|
+
### Changes
|
8
21
|
* Add support for Ruby 3.3
|
9
22
|
|
10
23
|
## 1.1.4
|
11
24
|
|
12
|
-
|
25
|
+
### Changes
|
13
26
|
* Drop obsolete countries gem
|
14
27
|
|
15
28
|
## 1.1.3
|
16
29
|
|
17
|
-
|
30
|
+
### Changes
|
18
31
|
* Don't wrap years when breaking down date ranges
|
19
32
|
* Allow HJ and HN in schedules
|
20
33
|
|
21
34
|
## 1.1.2
|
22
35
|
|
23
|
-
|
36
|
+
### Fixes
|
24
37
|
* Carry over last base date instead of first base date
|
25
38
|
|
26
39
|
## 1.1.1
|
27
40
|
|
28
|
-
|
41
|
+
### Fixes
|
29
42
|
* Carry over base date for multiple D-item elements which partially omit to
|
30
43
|
mention the month in every element
|
31
44
|
|
32
45
|
## 1.1.0
|
33
46
|
|
34
|
-
|
47
|
+
### Additions
|
35
48
|
* Extract subject group and condition group on Q item
|
36
49
|
|
37
50
|
## 1.0.0
|
38
51
|
|
39
|
-
|
52
|
+
### Breaking Changes
|
40
53
|
* `NOTAM::Schedule.parse` now returns an array of `NOTAM_Schedule` instances
|
41
54
|
instead of just a single one.
|
42
55
|
|
43
|
-
|
56
|
+
### Changes
|
44
57
|
* Edge case tolerant extraction of `PART n OF n` and `END PART n OF n` markers
|
45
58
|
|
46
|
-
|
59
|
+
### Additions
|
47
60
|
* Support for datetime ranges (i.e. `1 APR 2000-20 MAY 2000`) as well as times
|
48
61
|
across midnight (i.e. `1 APR 1900-0500`) on D items.
|
49
62
|
* Wrap all exceptions raised while parsing items.
|
50
63
|
|
51
64
|
## 0.1.3
|
52
65
|
|
53
|
-
|
66
|
+
### Fixes
|
54
67
|
* Reverse accidentally flipped F and G item.
|
55
68
|
|
56
69
|
## 0.1.2
|
57
70
|
|
58
|
-
|
71
|
+
### Changes
|
59
72
|
* The five day schedules are calculated starting today if `effective_at` is
|
60
73
|
in the past.
|
61
74
|
|
62
75
|
## 0.1.1
|
63
76
|
|
64
|
-
|
77
|
+
### Changes
|
65
78
|
* Update dependency on AIXM gem
|
66
79
|
|
67
80
|
## 0.1.0
|
68
81
|
|
69
|
-
|
82
|
+
### Initial Implementation
|
70
83
|
* Require Ruby 3.0
|
71
84
|
* `NOTAM::Message` and `NOTAM::Item` (Header, Q, A-G, Footer)
|
72
85
|
* `NOTAM::Schedule` with useful tools like `slice` and `resolve`
|
data/README.md
CHANGED
@@ -1,27 +1,19 @@
|
|
1
1
|
[](https://rubygems.org/gems/notam)
|
2
2
|
[](https://github.com/svoop/notam/actions?workflow=Test)
|
3
3
|
[](https://codeclimate.com/github/svoop/notam/)
|
4
|
-
[](https://github.com/sponsors/svoop)
|
5
5
|
|
6
6
|
# NOTAM
|
7
7
|
|
8
|
-
Parser for [NOTAM (Notice to
|
8
|
+
Parser for [NOTAM (Notice to Air Missions)](https://www.icao.int/safety/istars/pages/notams.aspx) messages in Ruby.
|
9
9
|
|
10
10
|
* [Homepage](https://github.com/svoop/notam)
|
11
11
|
* [API](https://www.rubydoc.info/gems/notam)
|
12
12
|
* Author: [Sven Schwyn - Bitcetera](https://bitcetera.com)
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
### Security
|
17
|
-
|
18
|
-
This gem is [cryptographically signed](https://guides.rubygems.org/security/#using-gems) in order to assure it hasn't been tampered with. Unless already done, please add the author's public key as a trusted certificate now:
|
19
|
-
|
20
|
-
```
|
21
|
-
gem cert --add <(curl -Ls https://raw.github.com/svoop/notam/main/certs/svoop.pem)
|
22
|
-
```
|
14
|
+
Thank you for supporting free and open-source software by sponsoring on [GitHub](https://github.com/sponsors/svoop) or on [Donorbox](https://donorbox.com/bitcetera). Any gesture is appreciated, from a single Euro for a ☕️ cup of coffee to 🍹 early retirement.
|
23
15
|
|
24
|
-
|
16
|
+
## Install
|
25
17
|
|
26
18
|
Add the following to the `Gemfile` or `gems.rb` of your [Bundler](https://bundler.io) powered Ruby project:
|
27
19
|
|
@@ -32,7 +24,7 @@ gem 'notam'
|
|
32
24
|
And then install the bundle:
|
33
25
|
|
34
26
|
```
|
35
|
-
bundle install
|
27
|
+
bundle install
|
36
28
|
```
|
37
29
|
|
38
30
|
## Usage
|
@@ -211,10 +203,9 @@ Parsed | `00:00` | `24:00` | the Ruby way
|
|
211
203
|
|
212
204
|
### References
|
213
205
|
|
214
|
-
* [ICAO Doc 8126: Aeronautical Information Services Manual](https://www.
|
206
|
+
* [ICAO Doc 8126: Aeronautical Information Services Manual](https://www.bazl.admin.ch/dam/bazl/de/dokumente/Fachleute/Regulationen_und_Grundlagen/icao-annex/ICAO%20doc%208126%20Aeronautical%20Information%20Services%20Manual%20%20.pdf.download.pdf/ICAO%20Doc%208126%20Aeronautical%20Information%20Services%20Manual.pdf)
|
215
207
|
* [ICAO Doc 10066: Aeronautical Information Management](https://ffac.ch/wp-content/uploads/2020/11/ICAO-Doc-10066-Aeronautical-Information-Management.pdf)
|
216
208
|
* [EUROCONTROL Guidelines Operating Procedures AIS Dynamic Data (OPADD)](https://www.eurocontrol.int/sites/default/files/2021-07/eurocontrol-guidelines-opadd-ed4-1.pdf)
|
217
|
-
* [NOTAM Q Codes](https://www.faa.gov/air_traffic/publications/atpubs/notam_html/appendix_b.html)
|
218
209
|
* [NOTAM Contractions](https://www.notams.faa.gov/downloads/contractions.pdf)
|
219
210
|
* [NOTAM format cheat sheet](http://vat-air.dk/files/ICAO%20NOTAM%20format.pdf)
|
220
211
|
* [Introduction on Wikipedia](https://en.wikipedia.org/wiki/NOTAM)
|
@@ -254,6 +245,10 @@ bundle exec guard # run tests whenever files are modified
|
|
254
245
|
|
255
246
|
You're welcome to [submit issues](https://github.com/svoop/notam/issues) and contribute code by [forking the project and submitting pull requests](https://docs.github.com/en/get-started/quickstart/fork-a-repo).
|
256
247
|
|
248
|
+
## Trivia
|
249
|
+
|
250
|
+
In the early days, the acronym [NOTAM](https://en.wikipedia.org/wiki/NOTAM) ment "Notice to Airmen". As many women roam the skies these days as well, it has finally been redefined as "Notice to Air Missions".
|
251
|
+
|
257
252
|
## License
|
258
253
|
|
259
254
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/lib/locales/en.yml
CHANGED
@@ -431,7 +431,6 @@ en:
|
|
431
431
|
rapid_exit_taxiway: "rapid exit taxiway"
|
432
432
|
all_radio_navigation_facilities: "all radio navigation facilities"
|
433
433
|
nondirectional_radio_beacon: "nondirectional radio beacon"
|
434
|
-
decca: "DECCA"
|
435
434
|
dme: "distance measuring equipment (DME)"
|
436
435
|
fan_marker: "fan marker"
|
437
436
|
locator: "locator"
|
@@ -494,6 +493,7 @@ en:
|
|
494
493
|
banner_towing: "banner/target towing"
|
495
494
|
ascent_of_free_balloon: "ascent of free balloon"
|
496
495
|
missile_gun_firing: "missile/gun/rocket firing"
|
496
|
+
laser_emission: "laser emission"
|
497
497
|
parachute_paragliding_or_hang_gliding: "parachute jumping/paragliding/hang gliding"
|
498
498
|
radioactive_or_toxic_materials: "radioactive materials or toxic chemicals"
|
499
499
|
blowing_gas: "burning or blowing gas"
|
@@ -502,7 +502,7 @@ en:
|
|
502
502
|
formation_flight: "formation flight"
|
503
503
|
volcanic_activity: "significant volcanic activity"
|
504
504
|
aerial_survey: "aerial survey"
|
505
|
-
|
505
|
+
fireworks: "fireworks"
|
506
506
|
other: "other"
|
507
507
|
condition_groups:
|
508
508
|
availability: "availabiity"
|
@@ -594,21 +594,21 @@ en:
|
|
594
594
|
trigger: "trigger NOTAM"
|
595
595
|
other: "other subject as specified in plain language"
|
596
596
|
traffic:
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
597
|
+
ifr_and_vfr: "IFR and VFR"
|
598
|
+
ifr: "IFR"
|
599
|
+
vfr: "VFR"
|
600
|
+
checklist: "checklist of NOTAM"
|
601
601
|
purposes:
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
602
|
+
immediate_attention: "immediate attention of flight crews"
|
603
|
+
operational_significance: "operational significance (PIB entry)"
|
604
|
+
flight_operations: "concerning flight operations"
|
605
|
+
miscellaneous: "miscellaneous (no PIB entry)"
|
606
|
+
checklist: "checklist of NOTAM"
|
607
607
|
scopes:
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
608
|
+
aerodrome: "aerodrome"
|
609
|
+
en_route: "en-route"
|
610
|
+
navigation_warning: "navigation warning"
|
611
|
+
checklist: "checklist of NOTAM"
|
612
612
|
contractions:
|
613
613
|
airport_lighting: "airport lighting"
|
614
614
|
braking_action_fair: "braking action fair"
|
@@ -829,7 +829,7 @@ en:
|
|
829
829
|
nonstandard: "nonstandard"
|
830
830
|
no_procedure_turn_required: "no procedure turn required"
|
831
831
|
number: "number"
|
832
|
-
|
832
|
+
notice_to_air_missions_publication: "notice to air missions publication"
|
833
833
|
northwest: "northwest"
|
834
834
|
obscured: "obscured/obscure/obscuring"
|
835
835
|
obstacle: "obstacle/obstruction"
|
data/lib/notam/schedule.rb
CHANGED
@@ -118,9 +118,9 @@ module NOTAM
|
|
118
118
|
# @return [String]
|
119
119
|
def cleanup(string)
|
120
120
|
string
|
121
|
-
|
122
|
-
|
123
|
-
|
121
|
+
.gsub(/\s+/, ' ') # collapse whitespaces to single space
|
122
|
+
.gsub(/ *- */, '-') # remove spaces around dashes
|
123
|
+
.strip
|
124
124
|
end
|
125
125
|
|
126
126
|
# @return [AIXM::Schedule::DateTime]
|
data/lib/notam/translation.rb
CHANGED
@@ -541,7 +541,6 @@ module NOTAM
|
|
541
541
|
'MY' => :rapid_exit_taxiway,
|
542
542
|
'NA' => :all_radio_navigation_facilities,
|
543
543
|
'NB' => :nondirectional_radio_beacon,
|
544
|
-
'NC' => :decca,
|
545
544
|
'ND' => :dme,
|
546
545
|
'NF' => :fan_marker,
|
547
546
|
'NL' => :locator,
|
@@ -604,6 +603,7 @@ module NOTAM
|
|
604
603
|
'WJ' => :banner_towing,
|
605
604
|
'WL' => :ascent_of_free_balloon,
|
606
605
|
'WM' => :missile_gun_firing,
|
606
|
+
'WO' => :laser_emission,
|
607
607
|
'WP' => :parachute_paragliding_or_hang_gliding,
|
608
608
|
'WR' => :radioactive_or_toxic_materials,
|
609
609
|
'WS' => :blowing_gas,
|
@@ -612,7 +612,7 @@ module NOTAM
|
|
612
612
|
'WV' => :formation_flight,
|
613
613
|
'WW' => :volcanic_activity,
|
614
614
|
'WY' => :aerial_survey,
|
615
|
-
'WZ' => :
|
615
|
+
'WZ' => :fireworks,
|
616
616
|
'XX' => :other
|
617
617
|
}.freeze
|
618
618
|
|
@@ -966,7 +966,7 @@ module NOTAM
|
|
966
966
|
'NONSTD' => :nonstandard,
|
967
967
|
'NOPT' => :no_procedure_turn_required,
|
968
968
|
'NR' => :number,
|
969
|
-
'NTAP' => :
|
969
|
+
'NTAP' => :notice_to_air_missions_publication,
|
970
970
|
'NW' => :northwest,
|
971
971
|
'OBSC' => :obscured,
|
972
972
|
'OBST' => :obstacle,
|
@@ -1109,5 +1109,3 @@ module NOTAM
|
|
1109
1109
|
}.freeze
|
1110
1110
|
|
1111
1111
|
end
|
1112
|
-
|
1113
|
-
|
data/lib/notam/version.rb
CHANGED
data/lib/tasks/fixtures.rake
CHANGED
@@ -5,6 +5,9 @@ require_relative '../notam/translation'
|
|
5
5
|
|
6
6
|
namespace :fixtures do
|
7
7
|
DEFAULT_FIRS = 'ED,LF,LO,LS'
|
8
|
+
IGNORE = [
|
9
|
+
'LFBB_R0188_24' # broken - duplicate F item
|
10
|
+
]
|
8
11
|
|
9
12
|
desc "Fetch new NOTAM fixtures for comma separated informal two letter ICAO FIR codes (default: #{DEFAULT_FIRS})"
|
10
13
|
task :fetch, [:firs] do |_, args|
|
@@ -21,9 +24,11 @@ namespace :fixtures do
|
|
21
24
|
response.body.scan(/<pre>(.+?)<\/pre>/im) do |message|
|
22
25
|
message = message.first
|
23
26
|
if NOTAM::Message.supported_format? message
|
27
|
+
next unless message.match %r{^(\w+?)/(\w+?)\s+\w+\s+Q\)\s+(\w+?)/}
|
28
|
+
name = [$3, $1, $2].join('_')
|
29
|
+
next if IGNORE.include? name
|
24
30
|
counter += 1
|
25
|
-
|
26
|
-
File.write(fixtures_path.join("#{id}.txt"), message)
|
31
|
+
File.write(fixtures_path.join(name + '.txt'), message)
|
27
32
|
end
|
28
33
|
end
|
29
34
|
puts "#{counter} fixtures downloaded"
|
@@ -46,8 +51,8 @@ namespace :fixtures do
|
|
46
51
|
end
|
47
52
|
end
|
48
53
|
|
49
|
-
desc "
|
50
|
-
task :
|
54
|
+
desc "Clear current test NOTAM fixtures"
|
55
|
+
task :clear do
|
51
56
|
fixtures_path.rmtree
|
52
57
|
end
|
53
58
|
|
metadata
CHANGED
@@ -1,33 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Schwyn
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIC+jCCAeKgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhydWJ5
|
14
|
-
L0RDPWJpdGNldGVyYS9EQz1jb20wHhcNMjMxMTEwMTgyMzM2WhcNMjQxMTA5MTgy
|
15
|
-
MzM2WjAjMSEwHwYDVQQDDBhydWJ5L0RDPWJpdGNldGVyYS9EQz1jb20wggEiMA0G
|
16
|
-
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDcLg+IHjXYaUlTSU7R235lQKD8ZhEe
|
17
|
-
KMhoGlSUonZ/zo1OT3KXcqTCP1iMX743xYs6upEGALCWWwq+nxvlDdnWRjF3AAv7
|
18
|
-
ikC+Z2BEowjyeCCT/0gvn4ohKcR0JOzzRaIlFUVInlGSAHx2QHZ2N8ntf54lu7nd
|
19
|
-
L8CiDK8rClsY4JBNGOgH9UC81f+m61UUQuTLxyM2CXfAYkj/sGNTvFRJcNX+nfdC
|
20
|
-
hM9r2kH1+7wsa8yG7wJ2IkrzNACD8v84oE6qVusN8OLEMUI/NaEPVPbw2LUM149H
|
21
|
-
PVa0i729A4IhroNnFNmw4wOC93ARNbM1+LW36PLMmKjKudf5Exg8VmDVAgMBAAGj
|
22
|
-
OTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSfK8MtR62mQ6oN
|
23
|
-
yoX/VKJzFjLSVDANBgkqhkiG9w0BAQsFAAOCAQEAXhT/LpMArF3JRcZSRkJDY+dU
|
24
|
-
GKCRqOefi2iydqh1yIqXyTA9PGR1w5O6O+WS1FvF+sHCwh8fFjCuStg2L8V2RSeo
|
25
|
-
aDtfZ5s80sL8wRFxg3kek69cBuI6ozU+rf9DaXlMES4i8+zASsdv9Y4a2BsbhEdE
|
26
|
-
9AtuMcWn5a45TOO0S4Q8OuV0v705V38Ow15J2RDRvkFRySt+//8/Vd57XAJxPXU0
|
27
|
-
k/QvZU05f6HMYBrPogJgIzHC/C5N/yeE4BVEuBDn+10Zb1iu3aDk8sd0uMgukCY8
|
28
|
-
TUmlP5A6NeGdeDJIoLgromAKs+nvI7TWzhQq9ODs51XhxgUFRCvBqUTpjTQigw==
|
29
|
-
-----END CERTIFICATE-----
|
30
|
-
date: 2024-01-13 00:00:00.000000000 Z
|
9
|
+
cert_chain: []
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
31
11
|
dependencies:
|
32
12
|
- !ruby/object:Gem::Dependency
|
33
13
|
name: aixm
|
@@ -189,7 +169,7 @@ dependencies:
|
|
189
169
|
- - ">="
|
190
170
|
- !ruby/object:Gem::Version
|
191
171
|
version: '0'
|
192
|
-
description: 'Parser for NOTAM (Notice to
|
172
|
+
description: 'Parser for NOTAM (Notice to Air Missions) messages in Ruby.
|
193
173
|
|
194
174
|
'
|
195
175
|
email:
|
@@ -197,9 +177,9 @@ email:
|
|
197
177
|
executables: []
|
198
178
|
extensions: []
|
199
179
|
extra_rdoc_files:
|
200
|
-
- README.md
|
201
180
|
- CHANGELOG.md
|
202
181
|
- LICENSE.txt
|
182
|
+
- README.md
|
203
183
|
files:
|
204
184
|
- CHANGELOG.md
|
205
185
|
- LICENSE.txt
|
@@ -233,7 +213,6 @@ metadata:
|
|
233
213
|
source_code_uri: https://github.com/svoop/notam
|
234
214
|
documentation_uri: https://www.rubydoc.info/gems/notam
|
235
215
|
bug_tracker_uri: https://github.com/svoop/notam/issues
|
236
|
-
post_install_message:
|
237
216
|
rdoc_options:
|
238
217
|
- "--title"
|
239
218
|
- NOTAM Parser
|
@@ -255,8 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
234
|
- !ruby/object:Gem::Version
|
256
235
|
version: '0'
|
257
236
|
requirements: []
|
258
|
-
rubygems_version: 3.
|
259
|
-
signing_key:
|
237
|
+
rubygems_version: 3.6.9
|
260
238
|
specification_version: 4
|
261
|
-
summary: Parser for NOTAM (Notice to
|
239
|
+
summary: Parser for NOTAM (Notice to Air Missions) messages
|
262
240
|
test_files: []
|
checksums.yaml.gz.sig
DELETED
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED