Class: Compendium::CollectionQuery

Inherits:
Query
  • Object
show all
Defined in:
lib/compendium/collection_query.rb

Overview

A CollectionQuery is a Query which runs once for each in a given set of criteria

Instance Attribute Summary collapse

Attributes inherited from Query

#filters, #metrics, #name, #options, #proc, #report, #results

Instance Method Summary collapse

Methods inherited from Query

#add_filter, #add_metric, #chart, #empty?, #initialize_clone, #nil?, #ran?, #render_chart, #render_table, #url

Constructor Details

#initializeCollectionQuery

Returns a new instance of CollectionQuery.



8
9
10
11
# File 'lib/compendium/collection_query.rb', line 8

def initialize(*)
  super
  self.collection = prepare_collection(@options[:collection])
end

Instance Attribute Details

#collectionObject

Returns the value of attribute collection.



6
7
8
# File 'lib/compendium/collection_query.rb', line 6

def collection
  @collection
end

Instance Method Details

#run(params, context = self) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/compendium/collection_query.rb', line 13

def run(params, context = self)
  collection_values = get_collection_values(context, params)

  results = collection_values.inject({}) do |r, (key, value)|
    res = collect_results(context, params, key, value)
    r[key] = res unless res.empty?
    r
  end

  # A CollectionQuery's results will be a ResultSet of ResultSets
  @results = ResultSet.new(results)
end