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 Helper

#block_from_args, #raise_error

Constructor Details

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

Returns a new instance of BucketedGroupsQueryPlanner.



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

def initialize(collection, group, opts = {})
  ParametersValidator.validate_options(opts, [:buckets], [:keep_empty])
  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



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

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

#sub_query(group_name) ⇒ Object



13
14
15
# File 'lib/aggrobot/query_planner/bucketed_groups_query_planner.rb', line 13

def sub_query(group_name)
  @query_map[group_name]
end