Sha256: baeb7bbc81ff5288a1e680feaaedc9cdc11d053c2407f80d763d0a7755f0a562

Contents?: true

Size: 1015 Bytes

Versions: 12

Compression:

Stored size: 1015 Bytes

Contents

require 'nokogiri'

module DataMapper
  module Serializer
    module XML
      module Nokogiri
        def self.new_document
          ::Nokogiri::XML::Document.new
        end

        def self.root_node(doc, name, attrs = {})
          root = ::Nokogiri::XML::Node.new(name, doc)

          attrs.each do |attr_name, attr_val|
            root[attr_name] = attr_val
          end

          doc.root.nil? ? doc.root = root : doc.root << root
          root
        end

        def self.add_node(parent, name, value, attrs = {})
          node = ::Nokogiri::XML::Node.new(name, parent.document)
          node << ::Nokogiri::XML::Text.new(value.to_s, parent.document) unless value.nil?

          attrs.each do |attr_name, attr_val|
            node[attr_name] = attr_val
          end

          parent << node
          node
        end

        def self.add_xml(parent, xml)
          parent << xml.root
        end

        def self.output(doc)
          doc.root.to_s
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
sbf-dm-serializer-1.4.0 lib/dm-serializer/xml/nokogiri.rb
sbf-dm-serializer-1.3.0 lib/dm-serializer/xml/nokogiri.rb
sbf-dm-serializer-1.3.0.beta.2 lib/dm-serializer/xml/nokogiri.rb
sbf-dm-serializer-1.3.0.beta lib/dm-serializer/xml/nokogiri.rb
ardm-serializer-1.2.2 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.2.2 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.2.1 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.2.0 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.2.0.rc2 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.2.0.rc1 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.1.0 lib/dm-serializer/xml/nokogiri.rb
dm-serializer-1.1.0.rc3 lib/dm-serializer/xml/nokogiri.rb