class RubyPsigate::Serializer
Public Class Methods
new(hash, options = { :header => false })
click to toggle source
# File lib/ruby_psigate/serializer.rb, line 4 def initialize(hash, options = { :header => false }) raise ArgumentError unless hash.is_a?(Hash) @hash = hash @header = options[:header] end
Public Instance Methods
to_xml()
click to toggle source
# File lib/ruby_psigate/serializer.rb, line 10 def to_xml @builder = Builder::XmlMarkup.new @builder.instruct! if @header for key, value in @hash case value when String @builder.tag!(key.to_sym, value) when Hash @builder.tag!(key.to_sym) do @builder << Serializer.new(value).to_xml end when Array values = value values.each do |val| @builder.tag!(key.to_sym) do @builder << Serializer.new(val).to_xml end end when NilClass # do nothing else raise ArgumentError, "Unknown class: #{value.class}" end end @builder.target! end