module Syobocal::DB

Public Class Methods

parse_table_data(xml) click to toggle source
# File lib/syobocal/db.rb, line 296
def self.parse_table_data(xml)
  xml = REXML::Document.new(xml)

  result = TableResult.new

  result.code = xml.elements["TableData/Result/Code"].text.to_i
  result.message = xml.elements["TableData/Result/Message"].text

  result.columns = []
  if result.code == 200
    result.title = xml.elements["TableData/Title"].text
    result.type = xml.elements["TableData/Type"].text

    xml.elements.each("TableData/Columns/Value") { |item|
      result.columns << item.text
    }

    xml.elements.each("TableData/Line") { |line|
      line_data = {}
      line.elements.each_with_index { |value, index|
        key = result.columns[index]
        if key == "Date"
          line_data[key] = Date.parse(value.text)
        else
          line_data[key] = value.text ? value.text.to_i : nil
        end
      }
      result << line_data
    }
  end

  result
end