Module: Humanoid::Criterion::Optional
- Included in:
- Humanoid::Criteria
- Defined in:
- lib/humanoid/criterion/optional.rb
Instance Method Summary collapse
-
#cache ⇒ Object
Tells the criteria that the cursor that gets returned needs to be cached.
-
#cached? ⇒ Boolean
Will return true if the cache option has been set.
-
#enslave ⇒ Object
Flags the criteria to execute against a read-only slave in the pool instead of master.
-
#extras(extras) ⇒ Object
Adds a criterion to the
Criteria
that specifies additional options to be passed to the Ruby driver, in the exact format for the driver. -
#id(*args) ⇒ Object
Adds a criterion to the
Criteria
that specifies an id that must be matched. -
#limit(value = 20) ⇒ Object
Adds a criterion to the
Criteria
that specifies the maximum number of results to return. -
#offset(*args) ⇒ Object
Returns the offset option.
-
#order_by(params = []) ⇒ Object
Adds a criterion to the
Criteria
that specifies the sort order of the returned documents in the database. -
#skip(value = 0) ⇒ Object
Adds a criterion to the
Criteria
that specifies how many results to skip when returning Documents.
Instance Method Details
#cache ⇒ Object
Tells the criteria that the cursor that gets returned needs to be cached. This is so multiple iterations don’t hit the database multiple times, however this is not advisable when working with large data sets as the entire results will get stored in memory.
Example:
criteria.cache
13 14 15 |
# File 'lib/humanoid/criterion/optional.rb', line 13 def cache @options.merge!(:cache => true); self end |
#cached? ⇒ Boolean
Will return true if the cache option has been set.
Example:
criteria.cached?
22 23 24 25 |
# File 'lib/humanoid/criterion/optional.rb', line 22 def cached? @cached ||= @options.delete(:cache) @cached == true end |
#enslave ⇒ Object
Flags the criteria to execute against a read-only slave in the pool instead of master.
Example:
criteria.enslave
33 34 35 |
# File 'lib/humanoid/criterion/optional.rb', line 33 def enslave @options.merge!(:enslave => true); self end |
#extras(extras) ⇒ Object
Adds a criterion to the Criteria
that specifies additional options to be passed to the Ruby driver, in the exact format for the driver.
Options:
extras: A Hash
that gets set to the driver options.
Example:
criteria.extras(:limit => 20, :skip => 40)
Returns: self
49 50 51 |
# File 'lib/humanoid/criterion/optional.rb', line 49 def extras(extras) @options.merge!(extras); ; self end |
#id(*args) ⇒ Object
Adds a criterion to the Criteria
that specifies an id that must be matched.
Options:
object_id: A String
representation of a Mongo::ObjectID
Example:
criteria.id("4ab2bc4b8ad548971900005c")
Returns: self
64 65 66 67 |
# File 'lib/humanoid/criterion/optional.rb', line 64 def id(*args) (args.flatten.size > 1) ? self.in(:_id => args.flatten) : (@selector[:_id] = args.first) self end |
#limit(value = 20) ⇒ Object
Adds a criterion to the Criteria
that specifies the maximum number of results to return. This is mostly used in conjunction with skip()
to handle paginated results.
Options:
value: An Integer
specifying the max number of results. Defaults to 20.
Example:
criteria.limit(100)
Returns: self
82 83 84 |
# File 'lib/humanoid/criterion/optional.rb', line 82 def limit(value = 20) @options[:limit] = value; self end |
#offset(*args) ⇒ Object
Returns the offset option. If a per_page option is in the list then it will replace it with a skip parameter and return the same value. Defaults to 20 if nothing was provided.
89 90 91 |
# File 'lib/humanoid/criterion/optional.rb', line 89 def offset(*args) args.size > 0 ? skip(args.first) : @options[:skip] end |
#order_by(params = []) ⇒ Object
Adds a criterion to the Criteria
that specifies the sort order of the returned documents in the database. Similar to a SQL “ORDER BY”.
Options:
params: An Array
of [field, direction] sorting pairs.
Example:
criteria.order_by([[:field1, :asc], [:field2, :desc]])
Returns: self
105 106 107 |
# File 'lib/humanoid/criterion/optional.rb', line 105 def order_by(params = []) @options[:sort] = params; self end |
#skip(value = 0) ⇒ Object
Adds a criterion to the Criteria
that specifies how many results to skip when returning Documents. This is mostly used in conjunction with limit()
to handle paginated results, and is similar to the traditional “offset” parameter.
Options:
value: An Integer
specifying the number of results to skip. Defaults to 0.
Example:
criteria.skip(20)
Returns: self
123 124 125 |
# File 'lib/humanoid/criterion/optional.rb', line 123 def skip(value = 0) @options[:skip] = value; self end |