Jam::Nokogiri

Parent

Generated with Razzle Dazzle Redfish.
[Validate]

Nokogiri Adaptor

Public Class Methods

new(*options) click to toggle source
# File lib/jam/nokogiri.rb, line 37
    def initialize(*options)
      @options = options
    end

Public Instance Methods

append(node_or_nodeset, child) click to toggle source

Append child to node(s).

# File lib/jam/nokogiri.rb, line 74
    def append(node_or_nodeset, child)
      ns = node_or_nodeset
      case child
      when ::Nokogiri::XML::Node
        each_node(node_or_nodeset) do |node|
          node << child
        end
      when ::Nokogiri::XML::NodeSet
        child.each do |n|
          each_node(node_or_nodeset) do |node|
            node << n.dup
          end
        end
      else
        append_text(node_or_nodeset, child)        
      end
    end
append_text(node_or_nodeset, text) click to toggle source

TODO

# File lib/jam/nokogiri.rb, line 93
    def append_text(node_or_nodeset, text)
    end
attribute(ns, att, val) click to toggle source

Set an attribute.

# File lib/jam/nokogiri.rb, line 118
    def attribute(ns, att, val)
      case ns
      when ::Nokogiri::XML::Node
        ns.attr(att, val)
      when ::Nokogiri::XML::NodeSet
        ns.each do |n|
          ns.attr(att, val)
        end
      end
    end
cleanup(node) click to toggle source

Remove jam nodes that ask for it, and all jam attributes.

# File lib/jam/nokogiri.rb, line 131
    def cleanup(node)
      node = node.root if ::Nokogiri::XML::Document === node
      # remove unwanted tags
      node.xpath("//*[@jam='erase']").each do |n|
        unwrap(n)
      end
      # remove jam attributes

      #
      node
    end
copy(node) click to toggle source

Deep copy.

# File lib/jam/nokogiri.rb, line 55
    def copy(node)
      node.dup 
    end
document(source) click to toggle source

Contruct XML document given source text.

# File lib/jam/nokogiri.rb, line 43
    def document(source)
      ::Nokogiri::XML(source, *@options)
    end
each_node(nodes) click to toggle source

Iterate over each node.

# File lib/jam/nokogiri.rb, line 145
    def each_node(nodes)
      unless ::Nokogiri::XML::NodeSet === nodes
        nodes = [nodes]
      end
      nodes.each do |node|
        yield(node)
      end
    end
empty(node_or_nodeset) click to toggle source

Empty nodes.

# File lib/jam/nokogiri.rb, line 61
    def empty(node_or_nodeset)
      case node_or_nodeset
      when ::Nokogiri::XML::Node
        node_or_nodeset.content = ''
      when ::Nokogiri::XML::NodeSet
        ns.each do |n|
          node_or_nodeset.content = ''
        end
      end
    end
remove(node) click to toggle source

Remove node.

# File lib/jam/nokogiri.rb, line 112
    def remove(node)
      node.remove
    end
replace_content_with_text(node_or_nodeset, text) click to toggle source

Replace node content with text.

# File lib/jam/nokogiri.rb, line 104
    def replace_content_with_text(node_or_nodeset, text)
      each_node(node_or_nodeset) do |node|
        node.content = text
      end
    end
search(node, qry) click to toggle source

Use CSS or XPath to search node.

# File lib/jam/nokogiri.rb, line 49
    def search(node, qry)
      node.search(qry)
    end
unwrap(node) click to toggle source

Unwrap a node, such that the outer tag is removed, leaving only it’s own children.

# File lib/jam/nokogiri.rb, line 157
    def unwrap(node)
      node.children.each do |child|
       node.parent << child
      end
      node.remove
    end

Disabled; run with --debug to generate this.