Sha256: 48f044e5b7dbe7c03fcdd1abe3604fc1d5dd0f837168d67c125c2a7ce2683796

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

module Wasserstand
=begin
      <gewaesser>
        <name>BODENSEE</name>
        <item>
          <no>8</no>
          <psmgr>320</psmgr>
          <pegelname>KONSTANZ</pegelname>
          <messwert>380,7</messwert>
          <km>0</km>
          <pnp>391,89</pnp>
          <tendenz>Gleich</tendenz>
          <datum>13.09.2012</datum>
          <uhrzeit>20:00:00</uhrzeit>
          <pegelnummer>0906</pegelnummer>
        </item>
      </gewaesser>
=end
  class Mapper
    class << self
      def map(node)
        Waterway.new(node.xpath('name').text) .tap do |ww|
          node.xpath('item').each do |item|
            pegel_name = item.xpath('pegelname').text
            ww.levels[pegel_name] = Level.new(item.xpath('pegelnummer').text).tap do |pegel|
              pegel.name = pegel_name
              pegel.km = item.xpath('km').text

              datum = item.xpath('datum').text
              uhrzeit = item.xpath('uhrzeit').text

              messdatum = Time.parse("#{datum} #{uhrzeit}")
              wert = item.xpath('messwert').text.sub(',', '.').to_f
              tendenz = item.xpath('tendenz').text.downcase.to_sym

              pegel.measurements << Measurement.new(messdatum, wert, tendenz)
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wasserstand-0.0.3 lib/wasserstand/mapper.rb