module Syobocal::DB::Mapper

Public Instance Methods

map(elm) click to toggle source
# File lib/syobocal/db.rb, line 4
def map(elm)
  result = {}
  elm.each_element { |child|
    set(result, to_snake(child.name).to_sym, child, @map[child.name])
  }
  result
end
set(hash, key, elm, type) click to toggle source
# File lib/syobocal/db.rb, line 16
def set(hash, key, elm, type)
  if elm
    val = nil
    if elm.text
      case type
      when :str
        val = elm.text
      when :int
        val = elm.text.to_i
      when :time
        val = Time.parse(elm.text)
      else
        raise "Undefined mapping for #{key}" if $SYOBOCAL_STRICT
        val = elm.text
      end
    end
    hash[key] = val
  end
end
to_snake(name) click to toggle source
# File lib/syobocal/db.rb, line 12
def to_snake(name)
  name.gsub(/([a-z])([A-Z])/) { $1 + "_" + $2 }.downcase
end