Class: Aggrobot::QueryPlanner::BucketedGroupsQueryPlanner

Inherits:
DefaultQueryPlanner show all
Defined in:
lib/aggrobot/query_planner/bucketed_groups_query_planner.rb

Instance Method Summary collapse

Methods included from ParametersValidator

#validate_and_extract_relation, #validate_options

Constructor Details

#initialize(collection, group, opts = {}) ⇒ BucketedGroupsQueryPlanner

Returns a new instance of BucketedGroupsQueryPlanner.



5
6
7
8
9
10
11
12
13
# File 'lib/aggrobot/query_planner/bucketed_groups_query_planner.rb', line 5

def initialize(collection, group, opts = {})
  required_params = [:buckets]
  optional_params = [:keep_empty]
  validate_options(opts, required_params, optional_params)
  raise_error 'Need to set group first' unless group
  super(collection, group)
  create_query_map(opts[:buckets])
  @keep_empty = opts[:keep_empty]
end

Instance Method Details

#query_results(extra_cols = []) ⇒ Object



19
20
21
22
23
24
# File 'lib/aggrobot/query_planner/bucketed_groups_query_planner.rb', line 19

def query_results(extra_cols = [])
  return empty_buckets if collection_is_none?
  results = collect_query_results(extra_cols)
  results.reject! { |r| r[1] == 0 } unless @keep_empty
  results
end

#sub_query(group_value) ⇒ Object



15
16
17
# File 'lib/aggrobot/query_planner/bucketed_groups_query_planner.rb', line 15

def sub_query(group_value)
  @query_map[group_value]
end