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
-
.create(collection, group_by, opts = nil) ⇒ Object
creates query object.
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 |