Class: JSONP3::ChildSegment
Overview
The child selection segment.
Instance Attribute Summary
Attributes inherited from Segment
#selectors, #token
Instance Method Summary
collapse
Methods inherited from Segment
#initialize
Instance Method Details
#==(other) ⇒ Object
Also known as:
eql?
56
57
58
59
60
|
# File 'lib/json_p3/segment.rb', line 56
def ==(other)
self.class == other.class &&
@selectors == other.selectors &&
@token == other.token
end
|
#hash ⇒ Object
64
65
66
|
# File 'lib/json_p3/segment.rb', line 64
def hash
[@selectors, @token].hash
end
|
#resolve(nodes) ⇒ Object
30
31
32
33
34
35
36
37
38
|
# File 'lib/json_p3/segment.rb', line 30
def resolve(nodes)
rv = [] nodes.each do |node|
@selectors.each do |selector|
rv.concat selector.resolve(node)
end
end
rv
end
|
#resolve_enum(nodes) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/json_p3/segment.rb', line 40
def resolve_enum(nodes)
Enumerator.new do |yielder|
nodes.each do |node|
@selectors.each do |selector|
selector.resolve(node).each do |item|
yielder << item
end
end
end
end
end
|
#to_s ⇒ Object
52
53
54
|
# File 'lib/json_p3/segment.rb', line 52
def to_s
"[#{@selectors.map(&:to_s).join(", ")}]"
end
|