wycats (owner)

Revisions

gist: 227705 Download_button fork
public
Public Clone URL: git://gist.github.com/227705.git
Embed All Files: show embed
o.O.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Nokogiri
  module XML
    class NodeSet
      def next
        map do |node|
          node.next_element
        end
      end
      
      def next_until(expr)
        first.next_until(expr)
      end
      
      def filter(expr)
        reject {|node| !node.matches?(expr) }
      end
    end
 
    class Element
      def next_element
        node = self.next
        node = node.next while node && node.node_type != 1
        node
      end
 
      def next_until(expr)
        nodes = NodeSet.new("")
        
        node = self
        until node.matches?(expr)
          nodes << node
          node = node.next_element
        end
        nodes
      end
    end
  end
end