class Nokogiri::XML::Node

def diff(other,options={},&block)

Returns:
  • (Enumerator) -

Other tags:
    Yieldparam: node -
    Yieldparam: change -

Other tags:
    Yield: -

Options Hash: (**options)
  • :removed (Boolean) --
  • :added (Boolean) --

Parameters:
  • options (Hash) --
  • other (Nokogiri::XML::Node) --
def diff(other,options={},&block)
  return enum_for(:diff,other,options) unless block
  if (options[:added] || options[:removed])
    tdiff_unordered(other) do |change,node|
      if (change == '+' && options[:added])
        yield change, node
      elsif (change == '-' && options[:removed])
        yield change, node
      end
    end
  else
    tdiff(other,&block)
  end
end

def tdiff_each_child(node,&block)

Other tags:
    Yieldparam: node -

Other tags:
    Yield: -

Parameters:
  • node (Nokogiri::XML::Node) --
def tdiff_each_child(node,&block)
  if node.kind_of?(Nokogiri::XML::Element)
    node.attribute_nodes.each(&block)
  end
  node.children.each(&block)
end

def tdiff_equal(node)

Returns:
  • (Boolean) -

Parameters:
  • node2 (Nokogiri::XML::Node) --
  • node1 (Nokogiri::XML::Node) --
def tdiff_equal(node)
  if (self.class == node.class)
    case node
    when Nokogiri::XML::Attr
      (self.name == node.name && self.value == node.value)
    when Nokogiri::XML::Element, Nokogiri::XML::DTD
      self.name == node.name
    when Nokogiri::XML::Text
      self.text == node.text
    else
      false
    end
  else
    false
  end
end