module Xeroizer::Report::XmlHelper::ClassMethods

Public Instance Methods

build_from_node(node, factory) click to toggle source
# File lib/xeroizer/report/xml_helper.rb, line 14
def build_from_node(node, factory)
  report = new(factory)
  
  extract_report_details(report, node)
  
  rows = node.xpath("Rows/Row")
  extract_rows(report, rows) if rows && rows.size > 0
  
  report
end

Protected Instance Methods

extract_report_details(report, node) click to toggle source

Extract header details for the report response.

# File lib/xeroizer/report/xml_helper.rb, line 28
def extract_report_details(report, node)
  node.elements.each do | element |
    case element.name.to_s
      when 'ReportID'       then report.id = element.text
      when 'ReportName'     then report.name = element.text
      when 'ReportType'     then report.type = element.text
      when 'ReportDate'     then report.date = Date.parse(element.text)
      when 'UpdatedDateUTC' then report.updated_at = Time.parse(element.text)
      when 'ReportTitles'
        element.elements.each do | title_element |
          report.titles << title_element.text
        end
    end
  end
end
extract_rows(report, rows) click to toggle source

Extract the report rows

# File lib/xeroizer/report/xml_helper.rb, line 45
def extract_rows(report, rows)
  rows.each do | row_node |
    report.rows << Row.build_from_node(row_node, report)
  end
end