Class: JSONP3::WildcardSelector
Overview
The wildcard selector selects all elements from an array or values from a hash.
Instance Attribute Summary
Attributes inherited from Selector
#token
Instance Method Summary
collapse
Methods inherited from Selector
#initialize, #singular?
Instance Method Details
#==(other) ⇒ Object
Also known as:
eql?
176
177
178
|
# File 'lib/json_p3/selector.rb', line 176
def ==(other)
self.class == other.class && @token == other.token
end
|
#hash ⇒ Object
182
183
184
|
# File 'lib/json_p3/selector.rb', line 182
def hash
@token.hash
end
|
#resolve(node) ⇒ Object
144
145
146
147
148
149
150
151
152
|
# File 'lib/json_p3/selector.rb', line 144
def resolve(node)
if node.value.is_a? Hash
node.value.map { |k, v| node.new_child(v, k) }
elsif node.value.is_a? Array
node.value.map.with_index { |e, i| node.new_child(e, i) }
else
[]
end
end
|
#resolve_enum(node) ⇒ Object
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
# File 'lib/json_p3/selector.rb', line 154
def resolve_enum(node)
if node.value.is_a? Hash
Enumerator.new do |yielder|
node.value.each do |k, v|
yielder << node.new_child(v, k)
end
end
elsif node.value.is_a? Array
Enumerator.new do |yielder|
node.value.each.with_index do |e, i|
yielder << node.new_child(e, i)
end
end
else
[]
end
end
|
#to_s ⇒ Object
172
173
174
|
# File 'lib/json_p3/selector.rb', line 172
def to_s
"*"
end
|