Sha256: 31e430ea4272fcd9455d932787274306bfce60a0cdfd04699817603bc59142ba

Contents?: true

Size: 1.18 KB

Versions: 69

Compression:

Stored size: 1.18 KB

Contents

module Nokogiri
  module XML
    class Attr < Node

      def self.new(document, name, *rest) # :nodoc:
        node_ptr = LibXML.xmlNewDocProp(document.cstruct, name.to_s, nil)
        node_cstruct = LibXML::XmlNode.new(node_ptr)
        node_cstruct.keep_reference_from_document!

        node = Node.wrap(node_cstruct, self)
        node.send :initialize, document, name, *rest
        yield node if block_given?
        node
      end

      def value=(content) # :nodoc:
        unless cstruct[:children].null?
          LibXML.xmlFreeNodeList(cstruct[:children])
        end
        cstruct[:children] = cstruct[:last] = nil
        return unless content

        char_ptr = LibXML.xmlEncodeEntitiesReentrant(cstruct[:doc], content)

        cstruct[:children] = LibXML.xmlStringGetNodeList(cstruct[:doc], char_ptr)
        child_cstruct = cstruct[:children]
        while ! child_cstruct.null?
          child = Node.wrap(child_cstruct)
          child.cstruct[:parent] = cstruct
          child.cstruct[:doc] = cstruct[:doc]
          cstruct[:last] = child.cstruct
          child_cstruct = child.cstruct[:next]
        end
        LibXML.xmlFree(char_ptr)

        content
      end

    end
  end
end

Version data entries

69 entries across 69 versions & 10 rubygems

Version Path
domo-0.0.4 vendor/bundle/ruby/1.9.1/gems/nokogiri-1.4.4/lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.7-java lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.7-x86-mingw32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.7-x86-mswin32-60 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.7 lib/nokogiri/ffi/xml/attr.rb
search_biomodel-1.0.0 search_biomodel/ruby/1.8/gems/nokogiri-1.4.6/lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.6 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.6-java lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.6-x86-mingw32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.6-x86-mswin32-60 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.5-java lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.5 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.5-x86-mswin32-60 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.5-x86-mingw32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4.2-java lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4.1-x86-mswin32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4.1-x86-mingw32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4-x86-mswin32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4-x86-mingw32 lib/nokogiri/ffi/xml/attr.rb
nokogiri-1.4.4-java lib/nokogiri/ffi/xml/attr.rb