Module: Aggrobot::QueryPlanner

Defined in:
lib/aggrobot/query_planner.rb,
lib/aggrobot/query_planner/parameters_validator.rb,
lib/aggrobot/query_planner/default_query_planner.rb,
lib/aggrobot/query_planner/group_limit_query_planner.rb,
lib/aggrobot/query_planner/bucketed_groups_query_planner.rb

Overview

plans queries in a Aggrobot

Defined Under Namespace

Modules: ParametersValidator Classes: BucketedGroupsQueryPlanner, DefaultQueryPlanner, GroupLimitQueryPlanner

Class Method Summary collapse

Class Method Details

.create(collection, group_by, opts = nil) ⇒ Object

creates query object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/aggrobot/query_planner.rb', line 11

def self.create(collection, group_by, opts = nil)
  case
  when opts.nil?
    DefaultQueryPlanner.new(collection, group_by)
  when opts.key?(:limit_to)
    # GROUP attrs by 'group_by' with limit
    GroupLimitQueryPlanner.new(collection, group_by, opts)
  when opts.key?(:buckets)
    # GROUP attrs by 'group_by' in buckets of opts[:buckets], e.g. 1..100, 101..200 etc
    BucketedGroupsQueryPlanner.new(collection, group_by, opts)
  else
    raise ArgumentError.new "Invalid options to group_by : #{opts}"
  end
end