Class: Coradoc::Query::ResultSet
- Inherits:
-
Object
- Object
- Coradoc::Query::ResultSet
- Includes:
- Enumerable
- Defined in:
- lib/coradoc/query.rb
Overview
Query result set - collection of matched elements
Instance Attribute Summary collapse
-
#elements ⇒ Object
readonly
Returns the value of attribute elements.
Instance Method Summary collapse
- #[](index) ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #filter(selector) ⇒ Object
- #first ⇒ Object
-
#initialize(elements = []) ⇒ ResultSet
constructor
A new instance of ResultSet.
- #inspect ⇒ Object
- #last ⇒ Object
- #length ⇒ Object (also: #size)
- #map(&block) ⇒ Object
- #query(selector) ⇒ Object
- #reject(&block) ⇒ Object
- #select(&block) ⇒ Object
- #to_a ⇒ Object
Constructor Details
#initialize(elements = []) ⇒ ResultSet
Returns a new instance of ResultSet.
233 234 235 |
# File 'lib/coradoc/query.rb', line 233 def initialize(elements = []) @elements = Array(elements).compact end |
Instance Attribute Details
#elements ⇒ Object (readonly)
Returns the value of attribute elements.
231 232 233 |
# File 'lib/coradoc/query.rb', line 231 def elements @elements end |
Instance Method Details
#[](index) ⇒ Object
241 242 243 |
# File 'lib/coradoc/query.rb', line 241 def [](index) @elements[index] end |
#each(&block) ⇒ Object
237 238 239 |
# File 'lib/coradoc/query.rb', line 237 def each(&block) @elements.each(&block) end |
#empty? ⇒ Boolean
250 251 252 |
# File 'lib/coradoc/query.rb', line 250 def empty? @elements.empty? end |
#filter(selector) ⇒ Object
262 263 264 265 266 |
# File 'lib/coradoc/query.rb', line 262 def filter(selector) parsed = Selector.parse(selector) filtered = @elements.select { |e| parsed.matches?(e) } ResultSet.new(filtered) end |
#first ⇒ Object
254 255 256 |
# File 'lib/coradoc/query.rb', line 254 def first @elements.first end |
#inspect ⇒ Object
291 292 293 |
# File 'lib/coradoc/query.rb', line 291 def inspect "#<Coradoc::Query::ResultSet count=#{length}>" end |
#last ⇒ Object
258 259 260 |
# File 'lib/coradoc/query.rb', line 258 def last @elements.last end |
#length ⇒ Object Also known as: size
245 246 247 |
# File 'lib/coradoc/query.rb', line 245 def length @elements.length end |
#map(&block) ⇒ Object
275 276 277 |
# File 'lib/coradoc/query.rb', line 275 def map(&block) ResultSet.new(@elements.map(&block)) end |
#query(selector) ⇒ Object
268 269 270 271 272 273 |
# File 'lib/coradoc/query.rb', line 268 def query(selector) results = @elements.flat_map do |element| Query.query_within(element, selector).to_a end ResultSet.new(results.uniq) end |
#reject(&block) ⇒ Object
283 284 285 |
# File 'lib/coradoc/query.rb', line 283 def reject(&block) ResultSet.new(@elements.reject(&block)) end |
#select(&block) ⇒ Object
279 280 281 |
# File 'lib/coradoc/query.rb', line 279 def select(&block) ResultSet.new(@elements.select(&block)) end |
#to_a ⇒ Object
287 288 289 |
# File 'lib/coradoc/query.rb', line 287 def to_a @elements.dup end |