class AIPP::LF::ENR41

ENR Navaids

Public Instance Methods

parse() click to toggle source
   # File lib/aipp/regions/LF/ENR-4.1.rb
10 def parse
11   prepare(html: read).css('tbody').each do |tbody|
12     tbody.css('tr').to_enum.with_index(1).each do |tr, index|
13       tds = tr.css('td')
14       navigational_aid = navigational_aid_from(
15         {
16           name: tds[0],
17           type: tds[1],
18           id: tds[2],
19           f: tds[3],
20           schedule: tds[4],
21           xy: tds[5],
22           z: tds[6]
23         },
24         source: source(position: tr.line),
25         sections: {
26           range: tds[5].css('span[id*="PORTEE"], span[id*="COUVERTURE"]'),
27           situation: tds[7],
28           observations: tds[9]
29         }
30       )
31       if navigational_aid && aixm.features.find_by(navigational_aid.class, id: navigational_aid.id, xy: navigational_aid.xy).none?
32         add navigational_aid
33       end
34     rescue => error
35       warn("error parsing navigational aid at ##{index}: #{error.message}", pry: error)
36     end
37   end
38 end