alakra/ndfd-weather-forecast-client

View on GitHub
lib/ndfd/dwml/head_extractor.rb

Summary

Maintainability
A
0 mins
Test Coverage
module NDFD
  class DWML
    class HeadExtractor
      attr_reader :output, :element

      def initialize(element)
        @element = element
        @output = {}
      end

      def process
        build_product
        build_source
        output
      end

      protected

      def build_product
        creation_date = Time.zone.parse(element.xpath('product/creation-date').text)

        @output.merge!(
          :product => {
            :title         => element.xpath('product/title').text,
            :field         => element.xpath('product/field').text,
            :category      => element.xpath('product/category').text,
            :creation_date => creation_date
          }
        )
      end

      def build_source
        sub_center = element.xpath('source/production-center/sub-center').text
        production_center = element.xpath('source/production-center').text

        @output.merge!(
          :source => {
            :more_information => element.xpath('source/more-information').text,
            :product_center   => production_center.gsub(sub_center, " - #{sub_center}"),
            :disclaimer       => element.xpath('source/disclaimer').text,
            :credit           => element.xpath('source/credit').text,
            :credit_logo      => element.xpath('source/credit-logo').text,
            :feedback         => element.xpath('source/feedback').text
          }
        )
      end
    end
  end
end