Class: MongoMapper::FinderOptions
- Defined in:
- lib/mongo_mapper/finder_options.rb
Constant Summary collapse
- OptionKeys =
[:fields, :select, :skip, :offset, :limit, :sort, :order]
Instance Method Summary collapse
-
#criteria ⇒ Hash
Mongo compatible criteria options.
-
#initialize(model, options) ⇒ FinderOptions
constructor
A new instance of FinderOptions.
-
#options ⇒ Hash
Mongo compatible options.
-
#to_a ⇒ Array<Hash>
Mongo criteria and options enclosed in an Array.
Constructor Details
#initialize(model, options) ⇒ FinderOptions
Returns a new instance of FinderOptions.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mongo_mapper/finder_options.rb', line 25 def initialize(model, ) raise ArgumentError, "Options must be a hash" unless .is_a?(Hash) .symbolize_keys! @model = model @options = {} @conditions = .delete(:conditions) || {} .each_pair do |key, value| if OptionKeys.include?(key) @options[key] = value else @conditions[key] = value end end add_sci_scope end |
Instance Method Details
#criteria ⇒ Hash
Returns Mongo compatible criteria options.
47 48 49 |
# File 'lib/mongo_mapper/finder_options.rb', line 47 def criteria to_mongo_criteria(@conditions) end |
#options ⇒ Hash
Returns Mongo compatible options.
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/mongo_mapper/finder_options.rb', line 52 def = @options.dup fields = .delete(:fields) || .delete(:select) skip = .delete(:skip) || .delete(:offset) || 0 limit = .delete(:limit) || 0 sort = .delete(:sort) || convert_order_to_sort(.delete(:order)) {:fields => to_mongo_fields(fields), :skip => skip.to_i, :limit => limit.to_i, :sort => sort} end |