class Honey::Builder

Attributes

account[R]
password[R]

Public Class Methods

new(account, password) click to toggle source
# File lib/honey/builder.rb, line 5
def initialize(account, password)
  @account = account
  @password = password
end

Public Instance Methods

build(data) click to toggle source
# File lib/honey/builder.rb, line 10
def build(data)
  @data = Nokogiri::XML::Builder.new do |xml|
    xml.HPEnvelope do
      xml.account(account)
      xml.password(password)
      data.each_pair do |key, value|
        xml_pair(xml, key, value)
      end
    end
  end.to_xml.strip
end
destruct(data) click to toggle source
# File lib/honey/builder.rb, line 22
def destruct(data)
  Nokogiri::XML(data).to_hash
end

Private Instance Methods

xml_array(xml, value) click to toggle source
# File lib/honey/builder.rb, line 42
def xml_array(xml, value)
  if value.respond_to? :each_pair
    value.each_pair { |k, v| xml_pair(xml, k, v) }
  elsif value.respond_to? :each
    value.each { |v| v }
  else
    value
  end
end
xml_pair(xml, key, value) click to toggle source
# File lib/honey/builder.rb, line 27
def xml_pair(xml, key, value)
  key = key.to_sym
  if value.respond_to? :each_pair
    xml.send(key) do
      value.each_pair { |k, v| xml_pair(xml, k, v) }
    end
  elsif value.respond_to? :each
    xml.send(key) do
      value.each { |val| xml_array(xml, val) }
    end
  else
    xml.send(key.to_sym, value)
  end
end