Sha256: eab7a164660d68b6f8b951f81951bc17d8ce2d2e2bdcc58c6e3a1969d048f9f6
Contents?: true
Size: 1.16 KB
Versions: 5
Compression:
Stored size: 1.16 KB
Contents
module Sunspot module Query # # A Group groups by the unique values of a given field, or by given queries. # class Group attr_accessor :limit, :truncate, :ngroups attr_reader :fields, :queries def initialize @sort = SortComposite.new @fields = [] @queries = [] end def add_field(field) if field.multiple? raise(ArgumentError, "#{field.name} cannot be used for grouping because it is a multiple-value field") end @fields << field end def add_query(query) @queries << query end def add_sort(sort) @sort << sort end def to_params params = { :group => 'true', :"group.ngroups" => @ngroups.nil? ? 'true' : @ngroups.to_s } params.merge!(@sort.to_params('group.')) params[:"group.field"] = @fields.map(&:indexed_name) if @fields.any? params[:"group.query"] = @queries.map(&:to_boolean_phrase) if @queries.any? params[:"group.limit"] = @limit if @limit params[:"group.truncate"] = @truncate if @truncate params end end end end
Version data entries
5 entries across 5 versions & 1 rubygems