class AuthorizeNet::Util

Public Class Methods

buildXmlFromObject(obj, parent_tag=nil) click to toggle source

Builds XML from Ruby Hashes/Arrays/Primitives

# File lib/authorize_net/util.rb, line 24
def buildXmlFromObject(obj, parent_tag=nil)
  xml = ""
  has_parent = !parent_tag.nil?

  # Arrays are formatted with the parent tag
  # wrapping each of the array elements for some
  # reason
  if obj.is_a? Array
    obj.each do |e|
      xml += has_parent ? "<#{parent_tag}>" : ""
      xml += buildXmlFromObject(e)
      xml += has_parent ? "</#{parent_tag}>" : ""
    end

  elsif obj.is_a? Hash
    xml += has_parent ? "<#{parent_tag}>" : ""
    obj.keys.each do |key|
      xml += buildXmlFromObject(obj[key], key.to_s)
    end
    xml += has_parent ? "</#{parent_tag}>" : ""

  elsif !obj.nil?
    xml += has_parent ? "<#{parent_tag}>" : ""
    xml += obj.to_s
    xml += has_parent ? "</#{parent_tag}>" : ""
  end

  return xml
end
getXmlValue(xml, attr_string) click to toggle source

A wrapper for safely getting the inner value of an XML attribute only if it exists

If multiple instances exist, return the first one

# File lib/authorize_net/util.rb, line 10
def getXmlValue(xml, attr_string)
  if !xml.respond_to? :at_css || attr_string.nil?
    return nil
  end

  attr = xml.at_css(attr_string)
  if !attr.nil?
    return attr.inner_text
  end
end