5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/axiomus_api/serializable.rb', line 5
def to_xml( = false, tag_name = nil)
serializable_fields = self.class.attribute_meta
attributes = (serializable_fields)
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.send(tag_name || self.tag_name, attributes) {
serializable_fields.each do |f, opt|
next if opt[:xml_type] == :attribute
xml_name = opt[:xml_name] || f
xml_type = opt[:xml_type] || :element
val = self.send(f)
next if val.nil?
elements = opt[:array] ? val : [val]
elements.each do |el|
create_by_type(xml, el, xml_type, xml_name)
end
end
}
end
xml = ? builder.to_xml : builder.doc.root.to_xml
normalize_axiomus_xml(xml)
end
|