aixm 0.3.3 → 0.3.4
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/.ruby-version +1 -1
 - data/.travis.yml +1 -2
 - data/CHANGELOG.md +20 -0
 - data/README.md +7 -2
 - data/aixm.gemspec +2 -3
 - data/lib/aixm.rb +6 -2
 - data/lib/aixm/a.rb +151 -0
 - data/lib/aixm/component/frequency.rb +2 -2
 - data/lib/aixm/component/geometry.rb +4 -0
 - data/lib/aixm/component/geometry/point.rb +0 -4
 - data/lib/aixm/component/helipad.rb +8 -22
 - data/lib/aixm/component/runway.rb +36 -36
 - data/lib/aixm/component/surface.rb +121 -0
 - data/lib/aixm/component/timetable.rb +1 -0
 - data/lib/aixm/constants.rb +40 -0
 - data/lib/aixm/d.rb +5 -0
 - data/lib/aixm/document.rb +2 -2
 - data/lib/aixm/f.rb +6 -0
 - data/lib/aixm/feature/address.rb +100 -0
 - data/lib/aixm/feature/airport.rb +26 -7
 - data/lib/aixm/feature/airspace.rb +10 -1
 - data/lib/aixm/feature/navigational_aid.rb +1 -1
 - data/lib/aixm/feature/navigational_aid/designated_point.rb +20 -5
 - data/lib/aixm/feature/navigational_aid/dme.rb +2 -2
 - data/lib/aixm/{component → feature}/service.rb +67 -16
 - data/lib/aixm/feature/unit.rb +40 -6
 - data/lib/aixm/refinements.rb +63 -6
 - data/lib/aixm/shortcuts.rb +12 -4
 - data/lib/aixm/version.rb +1 -1
 - data/lib/aixm/xy.rb +6 -1
 - data/lib/aixm/z.rb +6 -0
 - data/schemas/ofmx/0/OFMX-DataTypes.xsd +5 -2
 - data/schemas/ofmx/0/OFMX-Features.xsd +2 -0
 - data/spec/factory.rb +32 -10
 - data/spec/lib/aixm/a_spec.rb +203 -0
 - data/spec/lib/aixm/component/helipad_spec.rb +11 -17
 - data/spec/lib/aixm/component/runway_spec.rb +46 -32
 - data/spec/lib/aixm/component/surface_spec.rb +88 -0
 - data/spec/lib/aixm/d_spec.rb +10 -0
 - data/spec/lib/aixm/document_spec.rb +104 -32
 - data/spec/lib/aixm/f_spec.rb +10 -0
 - data/spec/lib/aixm/feature/address_spec.rb +55 -0
 - data/spec/lib/aixm/feature/airport_spec.rb +73 -3
 - data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +43 -6
 - data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +2 -2
 - data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +2 -2
 - data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +2 -2
 - data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +2 -2
 - data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +6 -6
 - data/spec/lib/aixm/{component → feature}/service_spec.rb +12 -14
 - data/spec/lib/aixm/feature/unit_spec.rb +7 -4
 - data/spec/lib/aixm/refinements_spec.rb +100 -15
 - data/spec/lib/aixm/z_spec.rb +10 -0
 - metadata +17 -25
 - data/lib/aixm/h.rb +0 -87
 - data/spec/lib/aixm/h_spec.rb +0 -113
 
| 
         @@ -83,9 +83,10 @@ describe AIXM::Feature::Unit do 
     | 
|
| 
       83 
83 
     | 
    
         
             
                      </AhpUid>
         
     | 
| 
       84 
84 
     | 
    
         
             
                      <codeType>TWR</codeType>
         
     | 
| 
       85 
85 
     | 
    
         
             
                      <codeClass>ICAO</codeClass>
         
     | 
| 
       86 
     | 
    
         
            -
                      <txtRmk> 
     | 
| 
      
 86 
     | 
    
         
            +
                      <txtRmk>FR only</txtRmk>
         
     | 
| 
       87 
87 
     | 
    
         
             
                    </Uni>
         
     | 
| 
       88 
     | 
    
         
            -
                     
     | 
| 
      
 88 
     | 
    
         
            +
                    <!-- Service: AFIS by PUJAUT TWR -->
         
     | 
| 
      
 89 
     | 
    
         
            +
                    <Ser source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       89 
90 
     | 
    
         
             
                      <SerUid>
         
     | 
| 
       90 
91 
     | 
    
         
             
                        <UniUid>
         
     | 
| 
       91 
92 
     | 
    
         
             
                          <txtName>PUJAUT TWR</txtName>
         
     | 
| 
         @@ -124,7 +125,8 @@ describe AIXM::Feature::Unit do 
     | 
|
| 
       124 
125 
     | 
    
         
             
                        <codeLang>FR</codeLang>
         
     | 
| 
       125 
126 
     | 
    
         
             
                      </Cdl>
         
     | 
| 
       126 
127 
     | 
    
         
             
                    </Fqy>
         
     | 
| 
       127 
     | 
    
         
            -
                     
     | 
| 
      
 128 
     | 
    
         
            +
                    <!-- Service: AFIS by PUJAUT TWR -->
         
     | 
| 
      
 129 
     | 
    
         
            +
                    <Ser source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       128 
130 
     | 
    
         
             
                      <SerUid>
         
     | 
| 
       129 
131 
     | 
    
         
             
                        <UniUid>
         
     | 
| 
       130 
132 
     | 
    
         
             
                          <txtName>PUJAUT TWR</txtName>
         
     | 
| 
         @@ -163,7 +165,8 @@ describe AIXM::Feature::Unit do 
     | 
|
| 
       163 
165 
     | 
    
         
             
                        <codeLang>FR</codeLang>
         
     | 
| 
       164 
166 
     | 
    
         
             
                      </Cdl>
         
     | 
| 
       165 
167 
     | 
    
         
             
                    </Fqy>
         
     | 
| 
       166 
     | 
    
         
            -
                     
     | 
| 
      
 168 
     | 
    
         
            +
                    <!-- Service: APP by PUJAUT TWR -->
         
     | 
| 
      
 169 
     | 
    
         
            +
                    <Ser source="LF|GEN|0.0 FACTORY|0|0">
         
     | 
| 
       167 
170 
     | 
    
         
             
                      <SerUid>
         
     | 
| 
       168 
171 
     | 
    
         
             
                        <UniUid>
         
     | 
| 
       169 
172 
     | 
    
         
             
                          <txtName>PUJAUT TWR</txtName>
         
     | 
| 
         @@ -155,6 +155,32 @@ describe AIXM::Refinements do 
     | 
|
| 
       155 
155 
     | 
    
         
             
                end
         
     | 
| 
       156 
156 
     | 
    
         
             
              end
         
     | 
| 
       157 
157 
     | 
    
         | 
| 
      
 158 
     | 
    
         
            +
              context Regexp do
         
     | 
| 
      
 159 
     | 
    
         
            +
                describe :decapture do
         
     | 
| 
      
 160 
     | 
    
         
            +
                  it "should replace capture groups with non-capture groups" do
         
     | 
| 
      
 161 
     | 
    
         
            +
                    /(foo) baz (bar)/.decapture.must_equal /(?-mix:(?:foo) baz (?:bar))/
         
     | 
| 
      
 162 
     | 
    
         
            +
                    /(foo) baz (bar)/i.decapture.must_equal /(?i-mx:(?:foo) baz (?:bar))/
         
     | 
| 
      
 163 
     | 
    
         
            +
                  end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
                  it "should replace named capture groups with non-capture groups" do
         
     | 
| 
      
 166 
     | 
    
         
            +
                    /(?<a>foo) baz (?<b>bar)/.decapture.must_equal /(?-mix:(?:foo) baz (?:bar))/
         
     | 
| 
      
 167 
     | 
    
         
            +
                    /(?<a>foo) baz (?<b>bar)/i.decapture.must_equal /(?i-mx:(?:foo) baz (?:bar))/
         
     | 
| 
      
 168 
     | 
    
         
            +
                  end
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
                  it "should not replace special groups" do
         
     | 
| 
      
 171 
     | 
    
         
            +
                    /(?:foo) (?<=baz) bar/.decapture.must_equal /(?-mix:(?:foo) (?<=baz) bar)/
         
     | 
| 
      
 172 
     | 
    
         
            +
                  end
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
                  it "should not replace literal round brackets" do
         
     | 
| 
      
 175 
     | 
    
         
            +
                    /\(foo\)/.decapture.must_equal /(?-mix:\(foo\))/
         
     | 
| 
      
 176 
     | 
    
         
            +
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
                  it "should replace literal backslash followed by literal round brackets" do
         
     | 
| 
      
 179 
     | 
    
         
            +
                    /\\(foo\\)/.decapture.must_equal /(?-mix:\\(?:foo\\))/
         
     | 
| 
      
 180 
     | 
    
         
            +
                  end
         
     | 
| 
      
 181 
     | 
    
         
            +
                end
         
     | 
| 
      
 182 
     | 
    
         
            +
              end
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
       158 
184 
     | 
    
         
             
              context String do
         
     | 
| 
       159 
185 
     | 
    
         
             
                describe :indent do
         
     | 
| 
       160 
186 
     | 
    
         
             
                  it "must indent single line string" do
         
     | 
| 
         @@ -167,77 +193,137 @@ describe AIXM::Refinements do 
     | 
|
| 
       167 
193 
     | 
    
         
             
                  end
         
     | 
| 
       168 
194 
     | 
    
         
             
                end
         
     | 
| 
       169 
195 
     | 
    
         | 
| 
      
 196 
     | 
    
         
            +
                describe :payload_hash do
         
     | 
| 
      
 197 
     | 
    
         
            +
                  subject do
         
     | 
| 
      
 198 
     | 
    
         
            +
                    <<~END
         
     | 
| 
      
 199 
     | 
    
         
            +
                      <?xml version="1.0" encoding="utf-8"?>
         
     | 
| 
      
 200 
     | 
    
         
            +
                      <OFMX-Snapshot region="LF">
         
     | 
| 
      
 201 
     | 
    
         
            +
                        <Ser type="essential" active="true">
         
     | 
| 
      
 202 
     | 
    
         
            +
                          <SerUid>
         
     | 
| 
      
 203 
     | 
    
         
            +
                            <UniUid>
         
     | 
| 
      
 204 
     | 
    
         
            +
                              <txtName>STRASBOURG APP</txtName>
         
     | 
| 
      
 205 
     | 
    
         
            +
                            </UniUid>
         
     | 
| 
      
 206 
     | 
    
         
            +
                            <codeType version="1" subversion="2">APP</codeType>
         
     | 
| 
      
 207 
     | 
    
         
            +
                            <noSeq>1</noSeq>
         
     | 
| 
      
 208 
     | 
    
         
            +
                          </SerUid>
         
     | 
| 
      
 209 
     | 
    
         
            +
                          <Stt priority="1">
         
     | 
| 
      
 210 
     | 
    
         
            +
                            <codeWorkHr>H24</codeWorkHr>
         
     | 
| 
      
 211 
     | 
    
         
            +
                          </Stt>
         
     | 
| 
      
 212 
     | 
    
         
            +
                          <Stt priority="2">
         
     | 
| 
      
 213 
     | 
    
         
            +
                            <codeWorkHr>HX</codeWorkHr>
         
     | 
| 
      
 214 
     | 
    
         
            +
                          </Stt>
         
     | 
| 
      
 215 
     | 
    
         
            +
                          <txtRmk>aka STRASBOURG approche</txtRmk>
         
     | 
| 
      
 216 
     | 
    
         
            +
                        </Ser>
         
     | 
| 
      
 217 
     | 
    
         
            +
                      </OFMX-Snapshot>
         
     | 
| 
      
 218 
     | 
    
         
            +
                    END
         
     | 
| 
      
 219 
     | 
    
         
            +
                  end
         
     | 
| 
      
 220 
     | 
    
         
            +
             
     | 
| 
      
 221 
     | 
    
         
            +
                  it "must calculate the hash" do
         
     | 
| 
      
 222 
     | 
    
         
            +
                    subject.payload_hash(region: 'LF', element: 'Ser').must_equal "269b1f18-cabe-3c9e-1d71-48a7414a4cb9"
         
     | 
| 
      
 223 
     | 
    
         
            +
                  end
         
     | 
| 
      
 224 
     | 
    
         
            +
                end
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
       170 
226 
     | 
    
         
             
                describe :to_dd do
         
     | 
| 
       171 
227 
     | 
    
         
             
                  it "must convert +6.2 DMS to DD" do
         
     | 
| 
      
 228 
     | 
    
         
            +
                    %q(12°34'56.78"N).to_dd.must_equal 12.58243888888889
         
     | 
| 
       172 
229 
     | 
    
         
             
                    %q(12°34'56.78").to_dd.must_equal 12.58243888888889
         
     | 
| 
      
 230 
     | 
    
         
            +
                    %q(12°34'56.78'').to_dd.must_equal 12.58243888888889
         
     | 
| 
       173 
231 
     | 
    
         
             
                    %q(12 34 56.78).to_dd.must_equal 12.58243888888889
         
     | 
| 
       174 
     | 
    
         
            -
                    %q(123456. 
     | 
| 
      
 232 
     | 
    
         
            +
                    %q(123456.78N).to_dd.must_equal 12.58243888888889
         
     | 
| 
       175 
233 
     | 
    
         
             
                  end
         
     | 
| 
       176 
234 
     | 
    
         | 
| 
       177 
235 
     | 
    
         
             
                  it "must convert -6.2 DMS to DD" do
         
     | 
| 
      
 236 
     | 
    
         
            +
                    %q(12°34'56.78"S).to_dd.must_equal(-12.58243888888889)
         
     | 
| 
       178 
237 
     | 
    
         
             
                    %q(-12°34'56.78").to_dd.must_equal(-12.58243888888889)
         
     | 
| 
       179 
238 
     | 
    
         
             
                    %q(-12 34 56.78).to_dd.must_equal(-12.58243888888889)
         
     | 
| 
       180 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 239 
     | 
    
         
            +
                    %q(123456.78S).to_dd.must_equal(-12.58243888888889)
         
     | 
| 
       181 
240 
     | 
    
         
             
                  end
         
     | 
| 
       182 
241 
     | 
    
         | 
| 
       183 
242 
     | 
    
         
             
                  it "must convert +7.2 DMS to DD" do
         
     | 
| 
      
 243 
     | 
    
         
            +
                    %q(111°22'33.44"N).to_dd.must_equal 111.37595555555555
         
     | 
| 
       184 
244 
     | 
    
         
             
                    %q(111°22'33.44").to_dd.must_equal 111.37595555555555
         
     | 
| 
       185 
245 
     | 
    
         
             
                    %q(111 22 33.44).to_dd.must_equal 111.37595555555555
         
     | 
| 
       186 
     | 
    
         
            -
                    %q(1112233. 
     | 
| 
      
 246 
     | 
    
         
            +
                    %q(1112233.44N).to_dd.must_equal 111.37595555555555
         
     | 
| 
       187 
247 
     | 
    
         
             
                  end
         
     | 
| 
       188 
248 
     | 
    
         | 
| 
       189 
249 
     | 
    
         
             
                  it "must convert -7.2 DMS to DD" do
         
     | 
| 
      
 250 
     | 
    
         
            +
                    %q(111°22'33.44"S).to_dd.must_equal(-111.37595555555555)
         
     | 
| 
       190 
251 
     | 
    
         
             
                    %q(-111°22'33.44").to_dd.must_equal(-111.37595555555555)
         
     | 
| 
       191 
252 
     | 
    
         
             
                    %q(-111 22 33.44).to_dd.must_equal(-111.37595555555555)
         
     | 
| 
       192 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 253 
     | 
    
         
            +
                    %q(1112233.44S).to_dd.must_equal(-111.37595555555555)
         
     | 
| 
       193 
254 
     | 
    
         
             
                  end
         
     | 
| 
       194 
255 
     | 
    
         | 
| 
       195 
256 
     | 
    
         
             
                  it "must convert +6.1 DMS to DD" do
         
     | 
| 
      
 257 
     | 
    
         
            +
                    %q(12°34'56.7"N).to_dd.must_equal 12.582416666666667
         
     | 
| 
       196 
258 
     | 
    
         
             
                    %q(12°34'56.7").to_dd.must_equal 12.582416666666667
         
     | 
| 
       197 
259 
     | 
    
         
             
                    %q(12 34 56.7).to_dd.must_equal 12.582416666666667
         
     | 
| 
       198 
     | 
    
         
            -
                    %q(123456. 
     | 
| 
      
 260 
     | 
    
         
            +
                    %q(123456.7N).to_dd.must_equal 12.582416666666667
         
     | 
| 
       199 
261 
     | 
    
         
             
                  end
         
     | 
| 
       200 
262 
     | 
    
         | 
| 
       201 
263 
     | 
    
         
             
                  it "must convert -6.1 DMS to DD" do
         
     | 
| 
      
 264 
     | 
    
         
            +
                    %q(12°34'56.7"S).to_dd.must_equal(-12.582416666666667)
         
     | 
| 
       202 
265 
     | 
    
         
             
                    %q(-12°34'56.7").to_dd.must_equal(-12.582416666666667)
         
     | 
| 
       203 
266 
     | 
    
         
             
                    %q(-12 34 56.7).to_dd.must_equal(-12.582416666666667)
         
     | 
| 
       204 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 267 
     | 
    
         
            +
                    %q(123456.7S).to_dd.must_equal(-12.582416666666667)
         
     | 
| 
       205 
268 
     | 
    
         
             
                  end
         
     | 
| 
       206 
269 
     | 
    
         | 
| 
       207 
270 
     | 
    
         
             
                  it "must convert +7.1 DMS to DD" do
         
     | 
| 
      
 271 
     | 
    
         
            +
                    %q(111°22'33.4"N).to_dd.must_equal 111.37594444444444
         
     | 
| 
       208 
272 
     | 
    
         
             
                    %q(111°22'33.4").to_dd.must_equal 111.37594444444444
         
     | 
| 
       209 
273 
     | 
    
         
             
                    %q(111 22 33.4).to_dd.must_equal 111.37594444444444
         
     | 
| 
       210 
     | 
    
         
            -
                    %q(1112233. 
     | 
| 
      
 274 
     | 
    
         
            +
                    %q(1112233.4N).to_dd.must_equal 111.37594444444444
         
     | 
| 
       211 
275 
     | 
    
         
             
                  end
         
     | 
| 
       212 
276 
     | 
    
         | 
| 
       213 
     | 
    
         
            -
                  it "must convert  
     | 
| 
      
 277 
     | 
    
         
            +
                  it "must convert -7.1 DMS to DD" do
         
     | 
| 
      
 278 
     | 
    
         
            +
                    %q(111°22'33.4"S).to_dd.must_equal(-111.37594444444444)
         
     | 
| 
       214 
279 
     | 
    
         
             
                    %q(-111°22'33.4").to_dd.must_equal(-111.37594444444444)
         
     | 
| 
       215 
280 
     | 
    
         
             
                    %q(-111 22 33.4).to_dd.must_equal(-111.37594444444444)
         
     | 
| 
       216 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 281 
     | 
    
         
            +
                    %q(1112233.4S).to_dd.must_equal(-111.37594444444444)
         
     | 
| 
       217 
282 
     | 
    
         
             
                  end
         
     | 
| 
       218 
283 
     | 
    
         | 
| 
       219 
284 
     | 
    
         
             
                  it "must convert +6.0 DMS to DD" do
         
     | 
| 
      
 285 
     | 
    
         
            +
                    %q(12°34'56"N).to_dd.must_equal 12.582222222222223
         
     | 
| 
       220 
286 
     | 
    
         
             
                    %q(12°34'56").to_dd.must_equal 12.582222222222223
         
     | 
| 
       221 
287 
     | 
    
         
             
                    %q(12 34 56).to_dd.must_equal 12.582222222222223
         
     | 
| 
       222 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 288 
     | 
    
         
            +
                    %q(123456N).to_dd.must_equal 12.582222222222223
         
     | 
| 
       223 
289 
     | 
    
         
             
                  end
         
     | 
| 
       224 
290 
     | 
    
         | 
| 
       225 
291 
     | 
    
         
             
                  it "must convert -6.0 DMS to DD" do
         
     | 
| 
      
 292 
     | 
    
         
            +
                    %q(12°34'56"S).to_dd.must_equal(-12.582222222222223)
         
     | 
| 
       226 
293 
     | 
    
         
             
                    %q(-12°34'56").to_dd.must_equal(-12.582222222222223)
         
     | 
| 
       227 
294 
     | 
    
         
             
                    %q(-12 34 56).to_dd.must_equal(-12.582222222222223)
         
     | 
| 
       228 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 295 
     | 
    
         
            +
                    %q(123456S).to_dd.must_equal(-12.582222222222223)
         
     | 
| 
       229 
296 
     | 
    
         
             
                  end
         
     | 
| 
       230 
297 
     | 
    
         | 
| 
       231 
298 
     | 
    
         
             
                  it "must convert +7.0 DMS to DD" do
         
     | 
| 
      
 299 
     | 
    
         
            +
                    %q(111°22'33"N).to_dd.must_equal 111.37583333333333
         
     | 
| 
       232 
300 
     | 
    
         
             
                    %q(111°22'33").to_dd.must_equal 111.37583333333333
         
     | 
| 
       233 
301 
     | 
    
         
             
                    %q(111 22 33).to_dd.must_equal 111.37583333333333
         
     | 
| 
       234 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 302 
     | 
    
         
            +
                    %q(1112233N).to_dd.must_equal 111.37583333333333
         
     | 
| 
       235 
303 
     | 
    
         
             
                  end
         
     | 
| 
       236 
304 
     | 
    
         | 
| 
       237 
     | 
    
         
            -
                  it "must convert  
     | 
| 
      
 305 
     | 
    
         
            +
                  it "must convert -7.0 DMS to DD" do
         
     | 
| 
      
 306 
     | 
    
         
            +
                    %q(111°22'33"S).to_dd.must_equal(-111.37583333333333)
         
     | 
| 
       238 
307 
     | 
    
         
             
                    %q(-111°22'33").to_dd.must_equal(-111.37583333333333)
         
     | 
| 
       239 
308 
     | 
    
         
             
                    %q(-111 22 33).to_dd.must_equal(-111.37583333333333)
         
     | 
| 
       240 
     | 
    
         
            -
                    %q( 
     | 
| 
      
 309 
     | 
    
         
            +
                    %q(1112233S).to_dd.must_equal(-111.37583333333333)
         
     | 
| 
      
 310 
     | 
    
         
            +
                  end
         
     | 
| 
      
 311 
     | 
    
         
            +
             
     | 
| 
      
 312 
     | 
    
         
            +
                  it "must convert all cardinal directions to DD" do
         
     | 
| 
      
 313 
     | 
    
         
            +
                    %q(111°22'33.44"N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 314 
     | 
    
         
            +
                    %q(111°22'33.44"E).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 315 
     | 
    
         
            +
                    %q(111°22'33.44"S).to_dd.must_equal -111.37595555555555
         
     | 
| 
      
 316 
     | 
    
         
            +
                    %q(111°22'33.44"W).to_dd.must_equal -111.37595555555555
         
     | 
| 
      
 317 
     | 
    
         
            +
                  end
         
     | 
| 
      
 318 
     | 
    
         
            +
             
     | 
| 
      
 319 
     | 
    
         
            +
                  it "must ignore minor typos when converting to DD" do
         
     | 
| 
      
 320 
     | 
    
         
            +
                    %q(111°22'33,44"N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 321 
     | 
    
         
            +
                    %q(111°22'33.44"n).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 322 
     | 
    
         
            +
                    %q(111°22"33.44"N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 323 
     | 
    
         
            +
                    %q(111°22'33.44'N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 324 
     | 
    
         
            +
                    %q(111°22'33.44" N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 325 
     | 
    
         
            +
                    %q(111° 22' 33.44" N).to_dd.must_equal 111.37595555555555
         
     | 
| 
      
 326 
     | 
    
         
            +
                    %q(-111°22'33.44"S).to_dd.must_equal 111.37595555555555
         
     | 
| 
       241 
327 
     | 
    
         
             
                  end
         
     | 
| 
       242 
328 
     | 
    
         | 
| 
       243 
329 
     | 
    
         
             
                  it "must do all possible roundtrip conversions" do
         
     | 
| 
         @@ -276,5 +362,4 @@ describe AIXM::Refinements do 
     | 
|
| 
       276 
362 
     | 
    
         
             
                  end
         
     | 
| 
       277 
363 
     | 
    
         
             
                end
         
     | 
| 
       278 
364 
     | 
    
         
             
              end
         
     | 
| 
       279 
     | 
    
         
            -
             
     | 
| 
       280 
365 
     | 
    
         
             
            end
         
     | 
    
        data/spec/lib/aixm/z_spec.rb
    CHANGED
    
    | 
         @@ -81,4 +81,14 @@ describe AIXM::Z do 
     | 
|
| 
       81 
81 
     | 
    
         
             
                  { subject => true }[dupe].must_equal true
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
              describe :zero? do
         
     | 
| 
      
 86 
     | 
    
         
            +
                it "returns true for zero height, elevation or altitude" do
         
     | 
| 
      
 87 
     | 
    
         
            +
                  subject.tap { |s| s.alt = 0 }.must_be :zero?
         
     | 
| 
      
 88 
     | 
    
         
            +
                end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                it "returns false for non-zero height, elevation or altitude" do
         
     | 
| 
      
 91 
     | 
    
         
            +
                  subject.tap { |s| s.alt = 1 }.wont_be :zero?
         
     | 
| 
      
 92 
     | 
    
         
            +
                end
         
     | 
| 
      
 93 
     | 
    
         
            +
              end
         
     | 
| 
       84 
94 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,29 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: aixm
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sven Schwyn
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-04-24 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name: bundler
         
     | 
| 
       15 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
     | 
    
         
            -
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       18 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       20 
     | 
    
         
            -
              type: :development
         
     | 
| 
       21 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       22 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
     | 
    
         
            -
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       25 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       27 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
14 
     | 
    
         
             
              name: rake
         
     | 
| 
       29 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -169,6 +155,7 @@ files: 
     | 
|
| 
       169 
155 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       170 
156 
     | 
    
         
             
            - aixm.gemspec
         
     | 
| 
       171 
157 
     | 
    
         
             
            - lib/aixm.rb
         
     | 
| 
      
 158 
     | 
    
         
            +
            - lib/aixm/a.rb
         
     | 
| 
       172 
159 
     | 
    
         
             
            - lib/aixm/component.rb
         
     | 
| 
       173 
160 
     | 
    
         
             
            - lib/aixm/component/frequency.rb
         
     | 
| 
       174 
161 
     | 
    
         
             
            - lib/aixm/component/geometry.rb
         
     | 
| 
         @@ -179,15 +166,17 @@ files: 
     | 
|
| 
       179 
166 
     | 
    
         
             
            - lib/aixm/component/helipad.rb
         
     | 
| 
       180 
167 
     | 
    
         
             
            - lib/aixm/component/layer.rb
         
     | 
| 
       181 
168 
     | 
    
         
             
            - lib/aixm/component/runway.rb
         
     | 
| 
       182 
     | 
    
         
            -
            - lib/aixm/component/ 
     | 
| 
      
 169 
     | 
    
         
            +
            - lib/aixm/component/surface.rb
         
     | 
| 
       183 
170 
     | 
    
         
             
            - lib/aixm/component/timetable.rb
         
     | 
| 
       184 
171 
     | 
    
         
             
            - lib/aixm/component/vertical_limits.rb
         
     | 
| 
       185 
172 
     | 
    
         
             
            - lib/aixm/config.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - lib/aixm/constants.rb
         
     | 
| 
       186 
174 
     | 
    
         
             
            - lib/aixm/d.rb
         
     | 
| 
       187 
175 
     | 
    
         
             
            - lib/aixm/document.rb
         
     | 
| 
       188 
176 
     | 
    
         
             
            - lib/aixm/errors.rb
         
     | 
| 
       189 
177 
     | 
    
         
             
            - lib/aixm/f.rb
         
     | 
| 
       190 
178 
     | 
    
         
             
            - lib/aixm/feature.rb
         
     | 
| 
      
 179 
     | 
    
         
            +
            - lib/aixm/feature/address.rb
         
     | 
| 
       191 
180 
     | 
    
         
             
            - lib/aixm/feature/airport.rb
         
     | 
| 
       192 
181 
     | 
    
         
             
            - lib/aixm/feature/airspace.rb
         
     | 
| 
       193 
182 
     | 
    
         
             
            - lib/aixm/feature/navigational_aid.rb
         
     | 
| 
         @@ -200,8 +189,8 @@ files: 
     | 
|
| 
       200 
189 
     | 
    
         
             
            - lib/aixm/feature/obstacle.rb
         
     | 
| 
       201 
190 
     | 
    
         
             
            - lib/aixm/feature/obstacle_group.rb
         
     | 
| 
       202 
191 
     | 
    
         
             
            - lib/aixm/feature/organisation.rb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - lib/aixm/feature/service.rb
         
     | 
| 
       203 
193 
     | 
    
         
             
            - lib/aixm/feature/unit.rb
         
     | 
| 
       204 
     | 
    
         
            -
            - lib/aixm/h.rb
         
     | 
| 
       205 
194 
     | 
    
         
             
            - lib/aixm/refinements.rb
         
     | 
| 
       206 
195 
     | 
    
         
             
            - lib/aixm/shortcuts.rb
         
     | 
| 
       207 
196 
     | 
    
         
             
            - lib/aixm/version.rb
         
     | 
| 
         @@ -216,6 +205,7 @@ files: 
     | 
|
| 
       216 
205 
     | 
    
         
             
            - schemas/ofmx/0/OFMX-Features.xsd
         
     | 
| 
       217 
206 
     | 
    
         
             
            - schemas/ofmx/0/OFMX-Snapshot.xsd
         
     | 
| 
       218 
207 
     | 
    
         
             
            - spec/factory.rb
         
     | 
| 
      
 208 
     | 
    
         
            +
            - spec/lib/aixm/a_spec.rb
         
     | 
| 
       219 
209 
     | 
    
         
             
            - spec/lib/aixm/component/frequency_spec.rb
         
     | 
| 
       220 
210 
     | 
    
         
             
            - spec/lib/aixm/component/geometry/arc_spec.rb
         
     | 
| 
       221 
211 
     | 
    
         
             
            - spec/lib/aixm/component/geometry/border_spec.rb
         
     | 
| 
         @@ -225,7 +215,7 @@ files: 
     | 
|
| 
       225 
215 
     | 
    
         
             
            - spec/lib/aixm/component/helipad_spec.rb
         
     | 
| 
       226 
216 
     | 
    
         
             
            - spec/lib/aixm/component/layer_spec.rb
         
     | 
| 
       227 
217 
     | 
    
         
             
            - spec/lib/aixm/component/runway_spec.rb
         
     | 
| 
       228 
     | 
    
         
            -
            - spec/lib/aixm/component/ 
     | 
| 
      
 218 
     | 
    
         
            +
            - spec/lib/aixm/component/surface_spec.rb
         
     | 
| 
       229 
219 
     | 
    
         
             
            - spec/lib/aixm/component/timetable_spec.rb
         
     | 
| 
       230 
220 
     | 
    
         
             
            - spec/lib/aixm/component/vertical_limits_spec.rb
         
     | 
| 
       231 
221 
     | 
    
         
             
            - spec/lib/aixm/config_spec.rb
         
     | 
| 
         @@ -233,6 +223,7 @@ files: 
     | 
|
| 
       233 
223 
     | 
    
         
             
            - spec/lib/aixm/document_spec.rb
         
     | 
| 
       234 
224 
     | 
    
         
             
            - spec/lib/aixm/errors_spec.rb
         
     | 
| 
       235 
225 
     | 
    
         
             
            - spec/lib/aixm/f_spec.rb
         
     | 
| 
      
 226 
     | 
    
         
            +
            - spec/lib/aixm/feature/address_spec.rb
         
     | 
| 
       236 
227 
     | 
    
         
             
            - spec/lib/aixm/feature/airport_spec.rb
         
     | 
| 
       237 
228 
     | 
    
         
             
            - spec/lib/aixm/feature/airspace_spec.rb
         
     | 
| 
       238 
229 
     | 
    
         
             
            - spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb
         
     | 
| 
         @@ -245,9 +236,9 @@ files: 
     | 
|
| 
       245 
236 
     | 
    
         
             
            - spec/lib/aixm/feature/obstacle_group_spec.rb
         
     | 
| 
       246 
237 
     | 
    
         
             
            - spec/lib/aixm/feature/obstacle_spec.rb
         
     | 
| 
       247 
238 
     | 
    
         
             
            - spec/lib/aixm/feature/organisation_spec.rb
         
     | 
| 
      
 239 
     | 
    
         
            +
            - spec/lib/aixm/feature/service_spec.rb
         
     | 
| 
       248 
240 
     | 
    
         
             
            - spec/lib/aixm/feature/unit_spec.rb
         
     | 
| 
       249 
241 
     | 
    
         
             
            - spec/lib/aixm/feature_spec.rb
         
     | 
| 
       250 
     | 
    
         
            -
            - spec/lib/aixm/h_spec.rb
         
     | 
| 
       251 
242 
     | 
    
         
             
            - spec/lib/aixm/refinements_spec.rb
         
     | 
| 
       252 
243 
     | 
    
         
             
            - spec/lib/aixm/version_spec.rb
         
     | 
| 
       253 
244 
     | 
    
         
             
            - spec/lib/aixm/xy_spec.rb
         
     | 
| 
         @@ -272,20 +263,20 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       272 
263 
     | 
    
         
             
              requirements:
         
     | 
| 
       273 
264 
     | 
    
         
             
              - - ">="
         
     | 
| 
       274 
265 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       275 
     | 
    
         
            -
                  version: '2. 
     | 
| 
      
 266 
     | 
    
         
            +
                  version: '2.6'
         
     | 
| 
       276 
267 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       277 
268 
     | 
    
         
             
              requirements:
         
     | 
| 
       278 
269 
     | 
    
         
             
              - - ">="
         
     | 
| 
       279 
270 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       280 
271 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       281 
272 
     | 
    
         
             
            requirements: []
         
     | 
| 
       282 
     | 
    
         
            -
             
     | 
| 
       283 
     | 
    
         
            -
            rubygems_version: 2.7.6
         
     | 
| 
      
 273 
     | 
    
         
            +
            rubygems_version: 3.0.3
         
     | 
| 
       284 
274 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       285 
275 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       286 
276 
     | 
    
         
             
            summary: Aeronautical Information Exchange Model (AIXM 4.5).
         
     | 
| 
       287 
277 
     | 
    
         
             
            test_files:
         
     | 
| 
       288 
278 
     | 
    
         
             
            - spec/factory.rb
         
     | 
| 
      
 279 
     | 
    
         
            +
            - spec/lib/aixm/a_spec.rb
         
     | 
| 
       289 
280 
     | 
    
         
             
            - spec/lib/aixm/component/frequency_spec.rb
         
     | 
| 
       290 
281 
     | 
    
         
             
            - spec/lib/aixm/component/geometry/arc_spec.rb
         
     | 
| 
       291 
282 
     | 
    
         
             
            - spec/lib/aixm/component/geometry/border_spec.rb
         
     | 
| 
         @@ -295,7 +286,7 @@ test_files: 
     | 
|
| 
       295 
286 
     | 
    
         
             
            - spec/lib/aixm/component/helipad_spec.rb
         
     | 
| 
       296 
287 
     | 
    
         
             
            - spec/lib/aixm/component/layer_spec.rb
         
     | 
| 
       297 
288 
     | 
    
         
             
            - spec/lib/aixm/component/runway_spec.rb
         
     | 
| 
       298 
     | 
    
         
            -
            - spec/lib/aixm/component/ 
     | 
| 
      
 289 
     | 
    
         
            +
            - spec/lib/aixm/component/surface_spec.rb
         
     | 
| 
       299 
290 
     | 
    
         
             
            - spec/lib/aixm/component/timetable_spec.rb
         
     | 
| 
       300 
291 
     | 
    
         
             
            - spec/lib/aixm/component/vertical_limits_spec.rb
         
     | 
| 
       301 
292 
     | 
    
         
             
            - spec/lib/aixm/config_spec.rb
         
     | 
| 
         @@ -303,6 +294,7 @@ test_files: 
     | 
|
| 
       303 
294 
     | 
    
         
             
            - spec/lib/aixm/document_spec.rb
         
     | 
| 
       304 
295 
     | 
    
         
             
            - spec/lib/aixm/errors_spec.rb
         
     | 
| 
       305 
296 
     | 
    
         
             
            - spec/lib/aixm/f_spec.rb
         
     | 
| 
      
 297 
     | 
    
         
            +
            - spec/lib/aixm/feature/address_spec.rb
         
     | 
| 
       306 
298 
     | 
    
         
             
            - spec/lib/aixm/feature/airport_spec.rb
         
     | 
| 
       307 
299 
     | 
    
         
             
            - spec/lib/aixm/feature/airspace_spec.rb
         
     | 
| 
       308 
300 
     | 
    
         
             
            - spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb
         
     | 
| 
         @@ -315,9 +307,9 @@ test_files: 
     | 
|
| 
       315 
307 
     | 
    
         
             
            - spec/lib/aixm/feature/obstacle_group_spec.rb
         
     | 
| 
       316 
308 
     | 
    
         
             
            - spec/lib/aixm/feature/obstacle_spec.rb
         
     | 
| 
       317 
309 
     | 
    
         
             
            - spec/lib/aixm/feature/organisation_spec.rb
         
     | 
| 
      
 310 
     | 
    
         
            +
            - spec/lib/aixm/feature/service_spec.rb
         
     | 
| 
       318 
311 
     | 
    
         
             
            - spec/lib/aixm/feature/unit_spec.rb
         
     | 
| 
       319 
312 
     | 
    
         
             
            - spec/lib/aixm/feature_spec.rb
         
     | 
| 
       320 
     | 
    
         
            -
            - spec/lib/aixm/h_spec.rb
         
     | 
| 
       321 
313 
     | 
    
         
             
            - spec/lib/aixm/refinements_spec.rb
         
     | 
| 
       322 
314 
     | 
    
         
             
            - spec/lib/aixm/version_spec.rb
         
     | 
| 
       323 
315 
     | 
    
         
             
            - spec/lib/aixm/xy_spec.rb
         
     | 
    
        data/lib/aixm/h.rb
    DELETED
    
    | 
         @@ -1,87 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            using AIXM::Refinements
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module AIXM
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              # Heading of an aircraft or runway
         
     | 
| 
       6 
     | 
    
         
            -
              #
         
     | 
| 
       7 
     | 
    
         
            -
              # @example
         
     | 
| 
       8 
     | 
    
         
            -
              #   AIXM.h(12)
         
     | 
| 
       9 
     | 
    
         
            -
              #   AIXM.h('12')
         
     | 
| 
       10 
     | 
    
         
            -
              #   AIXM.h('34L')
         
     | 
| 
       11 
     | 
    
         
            -
              #   AIXM.h('05X')
         
     | 
| 
       12 
     | 
    
         
            -
              class H
         
     | 
| 
       13 
     | 
    
         
            -
                SUFFIX_INVERSIONS = {
         
     | 
| 
       14 
     | 
    
         
            -
                  R: :L,
         
     | 
| 
       15 
     | 
    
         
            -
                  L: :R
         
     | 
| 
       16 
     | 
    
         
            -
                }.freeze
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                # @return [Integer] heading
         
     | 
| 
       19 
     | 
    
         
            -
                attr_reader :deg
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                # @return [Symbol, nil] suffix
         
     | 
| 
       22 
     | 
    
         
            -
                attr_reader :suffix
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                def initialize(deg_and_suffix)
         
     | 
| 
       25 
     | 
    
         
            -
                  fail(ArgumentError, "invalid heading") unless deg_and_suffix.to_s =~ /\A(\d+)([A-Z]+)?\z/
         
     | 
| 
       26 
     | 
    
         
            -
                  self.deg, self.suffix = $1.to_i, $2
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                # @return [String]
         
     | 
| 
       30 
     | 
    
         
            -
                def inspect
         
     | 
| 
       31 
     | 
    
         
            -
                  %Q(#<#{self.class} #{to_s}>)
         
     | 
| 
       32 
     | 
    
         
            -
                end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                # @return [String] human readable representation (e.g. "05" or "34L")
         
     | 
| 
       35 
     | 
    
         
            -
                def to_s
         
     | 
| 
       36 
     | 
    
         
            -
                  [('%02d' % deg), suffix].map(&:to_s).join
         
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                def deg=(value)
         
     | 
| 
       40 
     | 
    
         
            -
                  fail(ArgumentError, "invalid deg") unless value.between?(1, 36)
         
     | 
| 
       41 
     | 
    
         
            -
                  @deg = value
         
     | 
| 
       42 
     | 
    
         
            -
                end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                def suffix=(value)
         
     | 
| 
       45 
     | 
    
         
            -
                  fail(ArgumentError, "invalid suffix") unless value.nil? || value.to_s =~ /\A[A-Z]+\z/
         
     | 
| 
       46 
     | 
    
         
            -
                  @suffix = value&.to_s&.to_sym
         
     | 
| 
       47 
     | 
    
         
            -
                end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                # Invert a heading by 180 degrees
         
     | 
| 
       50 
     | 
    
         
            -
                #
         
     | 
| 
       51 
     | 
    
         
            -
                # @example
         
     | 
| 
       52 
     | 
    
         
            -
                #   AIXM.h('12').invert    # => AIXM.h(30)
         
     | 
| 
       53 
     | 
    
         
            -
                #   AIXM.h('34L').invert   # => AIXM.h(16, 'R')
         
     | 
| 
       54 
     | 
    
         
            -
                #   AIXM.h('33X').invert   # => AIXM.h(17, 'bravo')
         
     | 
| 
       55 
     | 
    
         
            -
                #
         
     | 
| 
       56 
     | 
    
         
            -
                # @return [AIXM::H] inverted heading
         
     | 
| 
       57 
     | 
    
         
            -
                def invert
         
     | 
| 
       58 
     | 
    
         
            -
                  AIXM.h([(((deg + 17) % 36) + 1), SUFFIX_INVERSIONS.fetch(suffix, suffix)].join)
         
     | 
| 
       59 
     | 
    
         
            -
                end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                # Check whether +other+ heading is the inverse
         
     | 
| 
       62 
     | 
    
         
            -
                #
         
     | 
| 
       63 
     | 
    
         
            -
                # @example
         
     | 
| 
       64 
     | 
    
         
            -
                #   AIXM.h('12').inverse_of? AIXM.h('30')     # => true
         
     | 
| 
       65 
     | 
    
         
            -
                #   AIXM.h('34L').inverse_of? AIXM.h('16R')   # => true
         
     | 
| 
       66 
     | 
    
         
            -
                #   AIXM.h('16R').inverse_of? AIXM.h('16L')   # => false
         
     | 
| 
       67 
     | 
    
         
            -
                #
         
     | 
| 
       68 
     | 
    
         
            -
                # @return [AIXM::H] inverted heading
         
     | 
| 
       69 
     | 
    
         
            -
                def inverse_of?(other)
         
     | 
| 
       70 
     | 
    
         
            -
                  invert == other
         
     | 
| 
       71 
     | 
    
         
            -
                end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                # @see Object#==
         
     | 
| 
       74 
     | 
    
         
            -
                # @return [Boolean]
         
     | 
| 
       75 
     | 
    
         
            -
                def ==(other)
         
     | 
| 
       76 
     | 
    
         
            -
                  self.class === other  && deg == other.deg && suffix == other.suffix
         
     | 
| 
       77 
     | 
    
         
            -
                end
         
     | 
| 
       78 
     | 
    
         
            -
                alias_method :eql?, :==
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                # @see Object#hash
         
     | 
| 
       81 
     | 
    
         
            -
                # @return [Integer]
         
     | 
| 
       82 
     | 
    
         
            -
                def hash
         
     | 
| 
       83 
     | 
    
         
            -
                  to_s.hash
         
     | 
| 
       84 
     | 
    
         
            -
                end
         
     | 
| 
       85 
     | 
    
         
            -
              end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
            end
         
     |