Class: Subsurface::Reader

Inherits:
Object
  • Object
show all
Defined in:
lib/subsurface.rb

Overview

Reader is the main class that reads the xml data

Class Method Summary collapse

Class Method Details

.read(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/subsurface.rb', line 13

def self.read(data)
  dives = []
  data.xpath('//dive').each do |dive|
    computer_data = []
    dive.xpath('divecomputer').each do |computer|
      extra_datas = []
      computer.xpath('extradata').each do |ed|
        extra_datas.push(
          ExtraData.new(
            get_attribute_value(ed, nil, 'key'),
            get_attribute_value(ed, nil, 'value')
          )
        )
      end
      samples = []
      computer.xpath('sample').each do |sample|
        samples.push(create_sample(sample))
      end
      computer_data.push(
        create_computer_data(computer, extra_datas, samples)
      )
    end
    dives.push(create_dive(dive, computer_data))
  end
  dives
end