Sha256: ade7713320e87f985aa8666365b6ee7c41fbc1459e836e96c77644fa34f1c43b

Contents?: true

Size: 882 Bytes

Versions: 3

Compression:

Stored size: 882 Bytes

Contents

module TestXml
  module NokogiriExt
    module Node
      def match?(element, compare_value = false)
        if compare_value && element.text_element?
          equal_text?(element)
        else
          contains_elements_of?(element) &&
          !element.elements.find {|el| not at(el.name).match?(el, compare_value) }
        end
      end

      def elements
        children.collect {|node| node if node.element? }.delete_if {|node| node.nil?}
      end

      def text_element?
        children.size == 1 && children.first.text?
      end

      private
      def equal_text?(element)
        content == element.content
      end

      def contains_elements_of?(element)
        element.elements.find {|el| not contains?(el)}.nil?
      end

      def contains?(element)
        children.find {|node| node.element? && node.name == element.name }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
test_xml-0.0.3 lib/test_xml/nokogiri/node.rb
test_xml-0.0.2 lib/test_xml/nokogiri/node.rb
test_xml-0.0.1 lib/test_xml/nokogiri/node.rb