Module: Petail::XML
- Defined in:
- lib/petail/xml/serializer.rb,
lib/petail/xml/deserializer.rb
Constant Summary collapse
- Serializer =
Converts name and value into an XML element.
lambda do |name, value, node| if value.is_a? Array element = node.add_element name.to_s value.map { |item| element.add_element("i").add_text item.to_s } else node.add_element(name.to_s).add_text value.to_s end end
- Deserializer =
Converts an XML element into a Hash.
lambda do |node, attributes = {}| if node.has_elements? node.each_element do |element| if element.name == "i" attributes[node.name.to_sym] ||= [] attributes[node.name.to_sym].push element.text elsif element.elements.empty? attributes[element.name.to_sym] = element.text else attributes = {element.name.to_sym => Deserializer.call(element, attributes)} end end else attributes[node.name.to_sym] = node.text end attributes end