aixm 0.3.0 → 0.3.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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +96 -72
  4. data/README.md +0 -1
  5. data/lib/aixm/component/geometry.rb +8 -2
  6. data/lib/aixm/component/layer.rb +83 -2
  7. data/lib/aixm/document.rb +11 -2
  8. data/lib/aixm/errors.rb +14 -2
  9. data/lib/aixm/feature.rb +2 -14
  10. data/lib/aixm/feature/airport.rb +19 -18
  11. data/lib/aixm/feature/airspace.rb +19 -21
  12. data/lib/aixm/feature/navigational_aid.rb +2 -2
  13. data/lib/aixm/feature/navigational_aid/designated_point.rb +1 -2
  14. data/lib/aixm/feature/navigational_aid/dme.rb +25 -4
  15. data/lib/aixm/feature/navigational_aid/marker.rb +1 -2
  16. data/lib/aixm/feature/navigational_aid/ndb.rb +1 -2
  17. data/lib/aixm/feature/navigational_aid/tacan.rb +5 -2
  18. data/lib/aixm/feature/navigational_aid/vor.rb +3 -4
  19. data/lib/aixm/feature/organisation.rb +3 -4
  20. data/lib/aixm/feature/unit.rb +3 -4
  21. data/lib/aixm/version.rb +1 -1
  22. data/schemas/ofmx/0/OFMX-CSV-Obstacle.json +209 -0
  23. data/schemas/ofmx/0/OFMX-CSV.json +12 -0
  24. data/schemas/ofmx/0/OFMX-DataTypes.xsd +64 -5
  25. data/schemas/ofmx/0/OFMX-Features.xsd +73 -23
  26. data/schemas/ofmx/0/OFMX-Snapshot.xsd +7 -2
  27. data/spec/factory.rb +8 -18
  28. data/spec/lib/aixm/component/geometry_spec.rb +27 -4
  29. data/spec/lib/aixm/component/helipad_spec.rb +2 -2
  30. data/spec/lib/aixm/component/layer_spec.rb +27 -0
  31. data/spec/lib/aixm/component/runway_spec.rb +13 -13
  32. data/spec/lib/aixm/document_spec.rb +56 -42
  33. data/spec/lib/aixm/feature/airport_spec.rb +15 -15
  34. data/spec/lib/aixm/feature/airspace_spec.rb +38 -30
  35. data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +2 -2
  36. data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +24 -7
  37. data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +4 -4
  38. data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +4 -4
  39. data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +24 -7
  40. data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +14 -14
  41. data/spec/lib/aixm/feature/organisation_spec.rb +2 -2
  42. data/spec/lib/aixm/feature/unit_spec.rb +11 -11
  43. data/spec/lib/aixm/feature_spec.rb +0 -20
  44. metadata +4 -2
@@ -7,11 +7,24 @@ describe AIXM::Feature::NavigationalAid::TACAN do
7
7
 
8
8
  describe :channel= do
9
9
  it "fails on invalid values" do
10
- [nil, :foobar, 123].wont_be_written_to subject, :channel
10
+ [nil, :foobar, 123, '0X', '127Y', '12Z'].wont_be_written_to subject, :channel
11
11
  end
12
+ end
12
13
 
13
- it "upcases value" do
14
- subject.tap { |s| s.channel = '3x' }.channel.must_equal '3X'
14
+ describe :ghost_f do
15
+ it "must be derived from the channel" do
16
+ subject.tap { |s| s.channel = '1X' }.ghost_f.freq.must_equal 134.4
17
+ subject.tap { |s| s.channel = '12Y' }.ghost_f.freq.must_equal 135.55
18
+ subject.tap { |s| s.channel = '16Y' }.ghost_f.freq.must_equal 135.95
19
+ subject.tap { |s| s.channel = '17X' }.ghost_f.freq.must_equal 108
20
+ subject.tap { |s| s.channel = '30X' }.ghost_f.freq.must_equal 109.3
21
+ subject.tap { |s| s.channel = '59Y' }.ghost_f.freq.must_equal 112.25
22
+ subject.tap { |s| s.channel = '60X' }.ghost_f.freq.must_equal 133.3
23
+ subject.tap { |s| s.channel = '64Y' }.ghost_f.freq.must_equal 133.75
24
+ subject.tap { |s| s.channel = '69Y' }.ghost_f.freq.must_equal 134.25
25
+ subject.tap { |s| s.channel = '70X' }.ghost_f.freq.must_equal 112.30
26
+ subject.tap { |s| s.channel = '100X' }.ghost_f.freq.must_equal 115.3
27
+ subject.tap { |s| s.channel = '126Y' }.ghost_f.freq.must_equal 117.95
15
28
  end
16
29
  end
17
30
 
@@ -27,16 +40,18 @@ describe AIXM::Feature::NavigationalAid::TACAN do
27
40
  subject.to_xml.must_equal <<~END
28
41
  <!-- NavigationalAid: [TACAN] TACAN NAVAID -->
29
42
  <Tcn source="LF|GEN|0.0 FACTORY|0|0">
30
- <TcnUid region="LF">
43
+ <TcnUid>
31
44
  <codeId>TTT</codeId>
32
45
  <geoLat>47.85916667N</geoLat>
33
46
  <geoLong>007.56000000E</geoLong>
34
47
  </TcnUid>
35
- <OrgUid region="LF">
48
+ <OrgUid>
36
49
  <txtName>FRANCE</txtName>
37
50
  </OrgUid>
38
51
  <txtName>TACAN NAVAID</txtName>
39
52
  <codeChannel>29X</codeChannel>
53
+ <valGhostFreq>109.2</valGhostFreq>
54
+ <uomGhostFreq>MHZ</uomGhostFreq>
40
55
  <codeDatum>WGE</codeDatum>
41
56
  <valElev>500</valElev>
42
57
  <uomDistVer>FT</uomDistVer>
@@ -54,15 +69,17 @@ describe AIXM::Feature::NavigationalAid::TACAN do
54
69
  subject.to_xml.must_equal <<~END
55
70
  <!-- NavigationalAid: [TACAN] UNNAMED -->
56
71
  <Tcn source="LF|GEN|0.0 FACTORY|0|0">
57
- <TcnUid region="LF">
72
+ <TcnUid>
58
73
  <codeId>TTT</codeId>
59
74
  <geoLat>47.85916667N</geoLat>
60
75
  <geoLong>007.56000000E</geoLong>
61
76
  </TcnUid>
62
- <OrgUid region="LF">
77
+ <OrgUid>
63
78
  <txtName>FRANCE</txtName>
64
79
  </OrgUid>
65
80
  <codeChannel>29X</codeChannel>
81
+ <valGhostFreq>109.2</valGhostFreq>
82
+ <uomGhostFreq>MHZ</uomGhostFreq>
66
83
  <codeDatum>WGE</codeDatum>
67
84
  </Tcn>
68
85
  END
@@ -50,12 +50,12 @@ describe AIXM::Feature::NavigationalAid::VOR do
50
50
  subject.to_xml.must_equal <<~END
51
51
  <!-- NavigationalAid: [VOR:VOR] VOR NAVAID -->
52
52
  <Vor source="LF|GEN|0.0 FACTORY|0|0">
53
- <VorUid region="LF">
53
+ <VorUid>
54
54
  <codeId>VVV</codeId>
55
55
  <geoLat>47.85916667N</geoLat>
56
56
  <geoLong>007.56000000E</geoLong>
57
57
  </VorUid>
58
- <OrgUid region="LF">
58
+ <OrgUid>
59
59
  <txtName>FRANCE</txtName>
60
60
  </OrgUid>
61
61
  <txtName>VOR NAVAID</txtName>
@@ -80,12 +80,12 @@ describe AIXM::Feature::NavigationalAid::VOR do
80
80
  subject.to_xml.must_equal <<~END
81
81
  <!-- NavigationalAid: [VOR:VOR] UNNAMED -->
82
82
  <Vor source="LF|GEN|0.0 FACTORY|0|0">
83
- <VorUid region="LF">
83
+ <VorUid>
84
84
  <codeId>VVV</codeId>
85
85
  <geoLat>47.85916667N</geoLat>
86
86
  <geoLong>007.56000000E</geoLong>
87
87
  </VorUid>
88
- <OrgUid region="LF">
88
+ <OrgUid>
89
89
  <txtName>FRANCE</txtName>
90
90
  </OrgUid>
91
91
  <codeType>VOR</codeType>
@@ -120,12 +120,12 @@ describe AIXM::Feature::NavigationalAid::VOR do
120
120
  subject.to_xml.must_equal <<~END
121
121
  <!-- NavigationalAid: [VOR:VOR] VOR/DME NAVAID -->
122
122
  <Vor source="LF|GEN|0.0 FACTORY|0|0">
123
- <VorUid region="LF">
123
+ <VorUid>
124
124
  <codeId>VVV</codeId>
125
125
  <geoLat>47.85916667N</geoLat>
126
126
  <geoLong>007.56000000E</geoLong>
127
127
  </VorUid>
128
- <OrgUid region="LF">
128
+ <OrgUid>
129
129
  <txtName>FRANCE</txtName>
130
130
  </OrgUid>
131
131
  <txtName>VOR/DME NAVAID</txtName>
@@ -143,15 +143,15 @@ describe AIXM::Feature::NavigationalAid::VOR do
143
143
  </Vor>
144
144
  <!-- NavigationalAid: [DME] VOR/DME NAVAID -->
145
145
  <Dme>
146
- <DmeUid region="LF">
146
+ <DmeUid>
147
147
  <codeId>VVV</codeId>
148
148
  <geoLat>47.85916667N</geoLat>
149
149
  <geoLong>007.56000000E</geoLong>
150
150
  </DmeUid>
151
- <OrgUid region="LF">
151
+ <OrgUid>
152
152
  <txtName>FRANCE</txtName>
153
153
  </OrgUid>
154
- <VorUid region="LF">
154
+ <VorUid>
155
155
  <codeId>VVV</codeId>
156
156
  <geoLat>47.85916667N</geoLat>
157
157
  <geoLong>007.56000000E</geoLong>
@@ -192,12 +192,12 @@ describe AIXM::Feature::NavigationalAid::VOR do
192
192
  subject.to_xml.must_equal <<~END
193
193
  <!-- NavigationalAid: [VOR:VOR] VORTAC NAVAID -->
194
194
  <Vor source="LF|GEN|0.0 FACTORY|0|0">
195
- <VorUid region="LF">
195
+ <VorUid>
196
196
  <codeId>VVV</codeId>
197
197
  <geoLat>47.85916667N</geoLat>
198
198
  <geoLong>007.56000000E</geoLong>
199
199
  </VorUid>
200
- <OrgUid region="LF">
200
+ <OrgUid>
201
201
  <txtName>FRANCE</txtName>
202
202
  </OrgUid>
203
203
  <txtName>VORTAC NAVAID</txtName>
@@ -215,15 +215,15 @@ describe AIXM::Feature::NavigationalAid::VOR do
215
215
  </Vor>
216
216
  <!-- NavigationalAid: [TACAN] VORTAC NAVAID -->
217
217
  <Tcn>
218
- <TcnUid region="LF">
218
+ <TcnUid>
219
219
  <codeId>VVV</codeId>
220
220
  <geoLat>47.85916667N</geoLat>
221
221
  <geoLong>007.56000000E</geoLong>
222
222
  </TcnUid>
223
- <OrgUid region="LF">
223
+ <OrgUid>
224
224
  <txtName>FRANCE</txtName>
225
225
  </OrgUid>
226
- <VorUid region="LF">
226
+ <VorUid>
227
227
  <codeId>VVV</codeId>
228
228
  <geoLat>47.85916667N</geoLat>
229
229
  <geoLong>007.56000000E</geoLong>
@@ -50,7 +50,7 @@ describe AIXM::Feature::Organisation do
50
50
  subject.to_xml.must_equal <<~END
51
51
  <!-- Organisation: FRANCE -->
52
52
  <Org source="LF|GEN|0.0 FACTORY|0|0">
53
- <OrgUid region="LF">
53
+ <OrgUid>
54
54
  <txtName>FRANCE</txtName>
55
55
  </OrgUid>
56
56
  <codeId>LF</codeId>
@@ -66,7 +66,7 @@ describe AIXM::Feature::Organisation do
66
66
  subject.to_xml.must_equal <<~END
67
67
  <!-- Organisation: FRANCE -->
68
68
  <Org source="LF|GEN|0.0 FACTORY|0|0">
69
- <OrgUid region="LF">
69
+ <OrgUid>
70
70
  <txtName>FRANCE</txtName>
71
71
  </OrgUid>
72
72
  <codeType>S</codeType>
@@ -72,13 +72,13 @@ describe AIXM::Feature::Unit do
72
72
  subject.to_xml.must_equal <<~END
73
73
  <!-- Unit: PUJAUT TWR -->
74
74
  <Uni source="LF|GEN|0.0 FACTORY|0|0">
75
- <UniUid region="LF">
75
+ <UniUid>
76
76
  <txtName>PUJAUT TWR</txtName>
77
77
  </UniUid>
78
- <OrgUid region="LF">
78
+ <OrgUid>
79
79
  <txtName>FRANCE</txtName>
80
80
  </OrgUid>
81
- <AhpUid region="LF">
81
+ <AhpUid>
82
82
  <codeId>LFNT</codeId>
83
83
  </AhpUid>
84
84
  <codeType>TWR</codeType>
@@ -87,7 +87,7 @@ describe AIXM::Feature::Unit do
87
87
  </Uni>
88
88
  <Ser>
89
89
  <SerUid>
90
- <UniUid region="LF">
90
+ <UniUid>
91
91
  <txtName>PUJAUT TWR</txtName>
92
92
  </UniUid>
93
93
  <codeType>AFIS</codeType>
@@ -101,7 +101,7 @@ describe AIXM::Feature::Unit do
101
101
  <Fqy>
102
102
  <FqyUid>
103
103
  <SerUid>
104
- <UniUid region="LF">
104
+ <UniUid>
105
105
  <txtName>PUJAUT TWR</txtName>
106
106
  </UniUid>
107
107
  <codeType>AFIS</codeType>
@@ -126,7 +126,7 @@ describe AIXM::Feature::Unit do
126
126
  </Fqy>
127
127
  <Ser>
128
128
  <SerUid>
129
- <UniUid region="LF">
129
+ <UniUid>
130
130
  <txtName>PUJAUT TWR</txtName>
131
131
  </UniUid>
132
132
  <codeType>AFIS</codeType>
@@ -140,7 +140,7 @@ describe AIXM::Feature::Unit do
140
140
  <Fqy>
141
141
  <FqyUid>
142
142
  <SerUid>
143
- <UniUid region="LF">
143
+ <UniUid>
144
144
  <txtName>PUJAUT TWR</txtName>
145
145
  </UniUid>
146
146
  <codeType>AFIS</codeType>
@@ -165,7 +165,7 @@ describe AIXM::Feature::Unit do
165
165
  </Fqy>
166
166
  <Ser>
167
167
  <SerUid>
168
- <UniUid region="LF">
168
+ <UniUid>
169
169
  <txtName>PUJAUT TWR</txtName>
170
170
  </UniUid>
171
171
  <codeType>APP</codeType>
@@ -179,7 +179,7 @@ describe AIXM::Feature::Unit do
179
179
  <Fqy>
180
180
  <FqyUid>
181
181
  <SerUid>
182
- <UniUid region="LF">
182
+ <UniUid>
183
183
  <txtName>PUJAUT TWR</txtName>
184
184
  </UniUid>
185
185
  <codeType>APP</codeType>
@@ -212,10 +212,10 @@ describe AIXM::Feature::Unit do
212
212
  subject.to_xml.must_equal <<~END
213
213
  <!-- Unit: PUJAUT TWR -->
214
214
  <Uni source="LF|GEN|0.0 FACTORY|0|0">
215
- <UniUid region="LF">
215
+ <UniUid>
216
216
  <txtName>PUJAUT TWR</txtName>
217
217
  </UniUid>
218
- <OrgUid region="LF">
218
+ <OrgUid>
219
219
  <txtName>FRANCE</txtName>
220
220
  </OrgUid>
221
221
  <codeType>TWR</codeType>
@@ -15,26 +15,6 @@ describe AIXM::Feature do
15
15
  end
16
16
  end
17
17
 
18
- describe :region= do
19
- it "fails on invalid values" do
20
- -> { subject.region = 123 }.must_raise ArgumentError
21
- end
22
-
23
- it "accepts nil value" do
24
- subject.tap { |s| s.region = nil }.region.must_be_nil
25
- end
26
-
27
- it "upcases value" do
28
- subject.tap { |s| s.region = 'lol' }.region.must_equal 'LOL'
29
- end
30
-
31
- it "falls back to configuration default" do
32
- AIXM.config.region = 'foo'
33
- subject.region.must_equal 'FOO'
34
- AIXM.config.region = nil
35
- end
36
- end
37
-
38
18
  describe :== do
39
19
  it "recognizes features with identical UID as equal" do
40
20
  a = AIXM::Factory.organisation
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aixm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Schwyn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-12 00:00:00.000000000 Z
11
+ date: 2018-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -206,6 +206,8 @@ files:
206
206
  - schemas/aixm/4.5/AIXM-DataTypes.xsd
207
207
  - schemas/aixm/4.5/AIXM-Features.xsd
208
208
  - schemas/aixm/4.5/AIXM-Snapshot.xsd
209
+ - schemas/ofmx/0/OFMX-CSV-Obstacle.json
210
+ - schemas/ofmx/0/OFMX-CSV.json
209
211
  - schemas/ofmx/0/OFMX-DataTypes.xsd
210
212
  - schemas/ofmx/0/OFMX-Features.xsd
211
213
  - schemas/ofmx/0/OFMX-Snapshot.xsd