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