module Aggrobot::QueryPlanner
plans queries in a Aggrobot
Public Class Methods
create(collection, group_by, opts = nil)
click to toggle source
creates query object
# 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