module PinganApi::Models::Extensions::Map

Public Class Methods

included(base) click to toggle source
# File lib/pingan_api/models/extensions/map.rb, line 31
def self.included(base)
  def base.from_xml(xml)
    hash = Hash.from_xml(xml)
    hash_all = nil
    unless hash["Response"].nil?
      hash_all = hash["Response"]["Head"].merge(hash["Response"]["Body"]["Apply"])
    end
    unless hash["Request"].nil?
      hash_all = hash["Request"]["Head"].merge(hash["Request"]["Body"]["Apply"])
    end
    # fuck pingan dev 100000.times
    unless hash["RESPONSE"].nil?
      hash_all = hash["RESPONSE"]["Head"].merge(hash["RESPONSE"]["Body"]["Apply"])
    end

    instance = self.new
    instance.mapping(hash_all)
    return instance
  end
end

Public Instance Methods

get_binding() click to toggle source
# File lib/pingan_api/models/extensions/map.rb, line 8
def get_binding
  binding
end
get_result(template_path) click to toggle source
# File lib/pingan_api/models/extensions/map.rb, line 12
def get_result(template_path)
  erb = ERB.new(File.read(template_path))
  return erb.result(self.get_binding)
end
mapping(hash) click to toggle source
# File lib/pingan_api/models/extensions/map.rb, line 17
def mapping(hash)
  self.class.attr_names.each do |a|
    self.send("#{a.to_s}=", hash[a.upcase.to_s])
  end
end
to_hash() click to toggle source
# File lib/pingan_api/models/extensions/map.rb, line 23
def to_hash
  hash = {}
  self.instance_variables.each do |var|
    hash[var.to_s.delete("@")] = self.instance_variable_get(var)
  end
  return hash
end