Method: Exchanger::Field#to_xml_updates
- Defined in:
- lib/exchanger/field.rb
#to_xml_updates(value) ⇒ Object
See Element#to_xml_updates. Yields blocks with FieldURI and Item/Folder/etc changes.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/exchanger/field.rb', line 57 def to_xml_updates(value) return if [:readonly] doc = Nokogiri::XML::Document.new if value.is_a?(Array) value.each do |sub_value| sub_field.to_xml_updates(sub_value) do |field_uri_xml, element_xml| element_wrapper = doc.create_element(sub_field.tag_name) element_wrapper << element_xml yield [ field_uri_xml, element_wrapper ] end end elsif value.is_a?(Exchanger::Element) value.tag_name = tag_name if value.class.elements.keys.include?(:text) field = value.class.elements[:text] yield [ field.to_xml_field_uri(value), field.to_xml(value) ] else # PhysicalAddress ? value.class.elements.each do |name, field| yield [ field.to_xml_field_uri(value), field.to_xml(value, :only => [name]) ] end end else # String, Integer, Boolean, ... yield [ self.to_xml_field_uri(value), self.to_xml(value) ] end end |