Class: Aggrobot::QueryPlanner::DefaultQueryPlanner
- Inherits:
-
Object
- Object
- Aggrobot::QueryPlanner::DefaultQueryPlanner
show all
- Includes:
- ParametersValidator
- Defined in:
- lib/aggrobot/query_planner/default_query_planner.rb
Instance Method Summary
collapse
#validate_and_extract_relation, #validate_options
Constructor Details
#initialize(collection, group = DEFAULT_GROUP_BY) ⇒ DefaultQueryPlanner
6
7
8
|
# File 'lib/aggrobot/query_planner/default_query_planner.rb', line 6
def initialize(collection, group = DEFAULT_GROUP_BY)
@collection, @group = validate_and_extract_relation(collection), group
end
|
Instance Method Details
#query_results(extra_cols = []) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/aggrobot/query_planner/default_query_planner.rb', line 18
def query_results( = [])
return [] if collection_is_none?
if @group.is_a? Array
columns = @group + [SQLFunctions.count] +
results_query.pluck(*columns).collect do |result_row|
[result_row[0..(@group.count - 1)]] + result_row[@group.count..-1]
end
else
columns = [@group, SQLFunctions.count] +
results_query.pluck(*columns)
end
end
|
#sub_query(group_value) ⇒ Object
10
11
12
13
14
15
16
|
# File 'lib/aggrobot/query_planner/default_query_planner.rb', line 10
def sub_query(group_value)
if @group == DEFAULT_GROUP_BY
@collection
else
@collection.where(group_condition(group_value))
end
end
|