class RSolr::Xml::Generator
def to_xml(doc)
def to_xml(doc) lambda do |doc_node| doc.fields.each do |field_obj| value = field_obj.value if field_obj.name.to_s == RSolr::Document::CHILD_DOCUMENT_KEY child_node_builder = to_xml(field_obj.value) self.class.use_nokogiri ? doc_node.doc_(&child_node_builder) : doc_node.doc(&child_node_builder) elsif value.is_a?(Hash) && value.length == 1 && field_obj.attrs[:update].nil? update_attr, real_value = value.first doc_node.field real_value, field_obj.attrs.merge(update: update_attr) elsif value.nil? doc_node.field field_obj.value, field_obj.attrs.merge(null: true) else doc_node.field field_obj.value, field_obj.attrs end end end end