notam 1.0.0 → 1.1.1
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
- checksums.yaml.gz.sig +3 -2
- data/CHANGELOG.md +11 -0
- data/README.md +3 -1
- data/lib/locales/en.yml +24 -0
- data/lib/notam/item/d.rb +5 -1
- data/lib/notam/item/q.rb +11 -1
- data/lib/notam/translation.rb +50 -0
- data/lib/notam/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 417d4bc6e661b8d3a79cf54a3f191eea69643e6e40de00152589b12bedf8e768
|
4
|
+
data.tar.gz: 51e949d622b8da7772b8dc1e2247ffe41529e787ec2ee133a7852d728bfdf251
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6717133961de80fed0c49d88af287526e71654ea04ac51baeb69e1fc7b4bfdda8149bddec3949dc1292ad9bec69d1c4aa395224e6db5f17973bf9dd01a915b7e
|
7
|
+
data.tar.gz: 1827871715ad368903c2a91bc8da784a248f7cb44bf926d982efab3243c3ddc3afde83e2fecd1474c8b7725bf8ca4e824fd00ecade6710e9447c1c7e2a98ec18
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
x
|
1
|
+
��*-bxsk:� ��,�d'��������%3O��7$=B�ы�A�\�w�[�.�
|
2
|
+
RCu�==���9=��4-fdqf&��j��x�P��\2�A�F���|�g��լ~ǵ7�ih��T��$nz�g���h��Ù��k�
|
3
|
+
w&㛷r��G�۳��6�
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,17 @@
|
|
2
2
|
|
3
3
|
Nothing so far
|
4
4
|
|
5
|
+
## 1.1.1
|
6
|
+
|
7
|
+
#### Fixes
|
8
|
+
* Carry over base date for multiple D-item elements which partially omit to
|
9
|
+
mention the month in every element
|
10
|
+
|
11
|
+
## 1.1.0
|
12
|
+
|
13
|
+
#### Additions
|
14
|
+
* Extract subject group and condition group on Q item
|
15
|
+
|
5
16
|
## 1.0.0
|
6
17
|
|
7
18
|
#### Breaking Changes
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
[](https://rubygems.org/gems/notam)
|
2
|
-
[](https://github.com/svoop/notam/actions?workflow=Test)
|
3
3
|
[](https://codeclimate.com/github/svoop/notam/)
|
4
4
|
[](https://donorbox.org/bitcetera)
|
5
5
|
|
@@ -66,7 +66,9 @@ The resulting hash for this example looks as follows:
|
|
66
66
|
id_year: 2022,
|
67
67
|
new?: true,
|
68
68
|
fir: "LSAS",
|
69
|
+
subject_group: :airspace_restrictions,
|
69
70
|
subject: :restricted_area,
|
71
|
+
condition_group: :changes,
|
70
72
|
condition: :activated,
|
71
73
|
traffic: :vfr,
|
72
74
|
purpose: [:operational_significance, :flight_operations],
|
data/lib/locales/en.yml
CHANGED
@@ -307,6 +307,22 @@ en:
|
|
307
307
|
ZSHA: "Shanghai ACC"
|
308
308
|
ZWUQ: "Urumqi ACC"
|
309
309
|
ZYSH: "Shenyang ACC"
|
310
|
+
subject_groups:
|
311
|
+
airspace_organization: "airspace organization"
|
312
|
+
communications_and_surveillance_facilities: "communications and surveillance facilities"
|
313
|
+
facilities_and_services: "facilities and services"
|
314
|
+
gnss_services: "GNSS services"
|
315
|
+
instrument_and_microwave_landing_system: "instrument and microwave landing system"
|
316
|
+
checklist: "checklist"
|
317
|
+
lighting_facilities: "lighting facilities"
|
318
|
+
movement_and_landing_area: "movement and landing area"
|
319
|
+
terminal_and_en_route_navigation_facilities: "terminal and en route navigation facilities"
|
320
|
+
other_information: "other information"
|
321
|
+
air_traffic_procedures: "air traffic procedures"
|
322
|
+
airspace_restrictions: "airspace restrictions"
|
323
|
+
air_traffic_and_volmet_services: "air traffic and VOLMET services"
|
324
|
+
warning: "warning"
|
325
|
+
other: "other"
|
310
326
|
subjects:
|
311
327
|
minimum_altitude: "minimum altitude"
|
312
328
|
class_bcde_surface_area: "class B/C/D/E surface area"
|
@@ -488,6 +504,14 @@ en:
|
|
488
504
|
aerial_survey: "aerial survey"
|
489
505
|
model_flying: "model flying"
|
490
506
|
other: "other"
|
507
|
+
condition_groups:
|
508
|
+
availability: "availabiity"
|
509
|
+
changes: "changes"
|
510
|
+
hazard_conditions: "hazard conditions"
|
511
|
+
checklist: "checklist"
|
512
|
+
limitations: "limitations"
|
513
|
+
trigger: "trigger"
|
514
|
+
other: "other"
|
491
515
|
conditions:
|
492
516
|
withdrawn_for_maintenance: "withdrawn for maintenance"
|
493
517
|
available_for_daylight_operation: "available for daylight operation"
|
data/lib/notam/item/d.rb
CHANGED
@@ -15,7 +15,11 @@ module NOTAM
|
|
15
15
|
def parse
|
16
16
|
base_date = AIXM.date(data[:effective_at])
|
17
17
|
@schedules = text.sub(/\AD\)/, '').split(',').flat_map do |string|
|
18
|
-
Schedule.parse(string, base_date: base_date)
|
18
|
+
Schedule.parse(string, base_date: base_date).tap do |schedule|
|
19
|
+
if (date = schedule.first.actives.first).instance_of? AIXM::Schedule::Date
|
20
|
+
base_date = date # carry over month
|
21
|
+
end
|
22
|
+
end
|
19
23
|
end
|
20
24
|
self
|
21
25
|
rescue
|
data/lib/notam/item/q.rb
CHANGED
@@ -26,11 +26,21 @@ module NOTAM
|
|
26
26
|
captures['fir']
|
27
27
|
end
|
28
28
|
|
29
|
+
# @return [Symbol]
|
30
|
+
def subject_group
|
31
|
+
NOTAM.subject_group_for(captures['subject'][0,1])
|
32
|
+
end
|
33
|
+
|
29
34
|
# @return [Symbol]
|
30
35
|
def subject
|
31
36
|
NOTAM.subject_for(captures['subject'])
|
32
37
|
end
|
33
38
|
|
39
|
+
# @return [Symbol]
|
40
|
+
def condition_group
|
41
|
+
NOTAM.condition_group_for(captures['condition'][0,1])
|
42
|
+
end
|
43
|
+
|
34
44
|
# @return [Symbol]
|
35
45
|
def condition
|
36
46
|
NOTAM.condition_for(captures['condition'])
|
@@ -82,7 +92,7 @@ module NOTAM
|
|
82
92
|
|
83
93
|
# @see NOTAM::Item#merge
|
84
94
|
def merge
|
85
|
-
super(:fir, :subject, :condition, :traffic, :purpose, :scope, :lower_limit, :upper_limit, :center_point, :radius)
|
95
|
+
super(:fir, :subject_group, :subject, :condition_group, :condition, :traffic, :purpose, :scope, :lower_limit, :upper_limit, :center_point, :radius)
|
86
96
|
end
|
87
97
|
|
88
98
|
end
|
data/lib/notam/translation.rb
CHANGED
@@ -26,6 +26,14 @@ module NOTAM
|
|
26
26
|
FIRS.fetch(fir)
|
27
27
|
end
|
28
28
|
|
29
|
+
# Translates the NOTAM subject group code to human/machine readable symbol
|
30
|
+
#
|
31
|
+
# @param code [String] one letter subject group code
|
32
|
+
# @return [Symbol] value from {NOTAM::SUBJECT_GROUPS}
|
33
|
+
def subject_group_for(code)
|
34
|
+
SUBJECT_GROUPS.fetch(code)
|
35
|
+
end
|
36
|
+
|
29
37
|
# Translates the NOTAM subject code to human/machine readable symbol
|
30
38
|
#
|
31
39
|
# @param code [String] two letter subject code
|
@@ -34,6 +42,14 @@ module NOTAM
|
|
34
42
|
SUBJECTS.fetch(code)
|
35
43
|
end
|
36
44
|
|
45
|
+
# Translates the NOTAM condition group code to human/machine readable symbol
|
46
|
+
#
|
47
|
+
# @param code [String] one letter condition group code
|
48
|
+
# @return [Symbol] value from {NOTAM::CONDITION_GROUPS}
|
49
|
+
def condition_group_for(code)
|
50
|
+
CONDITION_GROUPS.fetch(code)
|
51
|
+
end
|
52
|
+
|
37
53
|
# Translates the NOTAM condition code to human/machine readable symbol
|
38
54
|
#
|
39
55
|
# @param code [String] two letter condition code
|
@@ -393,6 +409,27 @@ module NOTAM
|
|
393
409
|
'ZYSH' => [:CH]
|
394
410
|
}.freeze
|
395
411
|
|
412
|
+
# International NOTAM Q codes for subject groups
|
413
|
+
#
|
414
|
+
# @see https://www.faa.gov/air_traffic/publications/atpubs/notam_html/appendix_b.html
|
415
|
+
SUBJECT_GROUPS = {
|
416
|
+
'A' => :airspace_organization,
|
417
|
+
'C' => :communications_and_surveillance_facilities,
|
418
|
+
'F' => :facilities_and_services,
|
419
|
+
'G' => :gnss_services,
|
420
|
+
'I' => :instrument_and_microwave_landing_system,
|
421
|
+
'K' => :checklist,
|
422
|
+
'L' => :lighting_facilities,
|
423
|
+
'M' => :movement_and_landing_area,
|
424
|
+
'N' => :terminal_and_en_route_navigation_facilities,
|
425
|
+
'O' => :other_information,
|
426
|
+
'P' => :air_traffic_procedures,
|
427
|
+
'R' => :airspace_restrictions,
|
428
|
+
'S' => :air_traffic_and_volmet_services,
|
429
|
+
'W' => :warning,
|
430
|
+
'X' => :other
|
431
|
+
}.freeze
|
432
|
+
|
396
433
|
# International NOTAM Q codes for subjects
|
397
434
|
#
|
398
435
|
# @see https://www.faa.gov/air_traffic/publications/atpubs/notam_html/appendix_b.html
|
@@ -579,6 +616,19 @@ module NOTAM
|
|
579
616
|
'XX' => :other
|
580
617
|
}.freeze
|
581
618
|
|
619
|
+
# International NOTAM Q codes for condition groups
|
620
|
+
#
|
621
|
+
# @see https://www.faa.gov/air_traffic/publications/atpubs/notam_html/appendix_b.html
|
622
|
+
CONDITION_GROUPS = {
|
623
|
+
'A' => :availability,
|
624
|
+
'C' => :changes,
|
625
|
+
'H' => :hazard_conditions,
|
626
|
+
'K' => :checklist,
|
627
|
+
'L' => :limitations,
|
628
|
+
'T' => :trigger,
|
629
|
+
'X' => :other
|
630
|
+
}.freeze
|
631
|
+
|
582
632
|
# International NOTAM Q codes for conditions
|
583
633
|
#
|
584
634
|
# @see https://www.faa.gov/air_traffic/publications/atpubs/notam_html/appendix_b.html
|
data/lib/notam/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Schwyn
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
kAyiRqgxF4dJviwtqI7mZIomWL63+kXLgjOjMe1SHxfIPo/0ji6+r1p4KYa7o41v
|
30
30
|
fwIwU1MKlFBdsjkd
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2023-06-07 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: aixm
|
@@ -257,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
requirements: []
|
260
|
-
rubygems_version: 3.
|
260
|
+
rubygems_version: 3.4.13
|
261
261
|
signing_key:
|
262
262
|
specification_version: 4
|
263
263
|
summary: Parser for NOTAM (Notice to Airmen) messages
|
metadata.gz.sig
CHANGED
Binary file
|