Module: Origin::Selectable
- Extended by:
- Macroable
- Includes:
- Mergeable
- Included in:
- Queryable
- Defined in:
- lib/origin/selectable.rb
Overview
An origin selectable is selectable, in that it has the ability to select document from the database. The selectable module brings all functionality to the selectable that has to do with building MongoDB selectors.
Instance Attribute Summary (collapse)
-
- (Object) negating
Returns the value of attribute negating.
- - (Object) negating If the next spression is negated.
-
- (Object) selector
Returns the value of attribute selector.
- - (Object) selector The query selector.
Attributes included from Mergeable
#strategy, #strategy The name of the current strategy.
Class Method Summary (collapse)
-
+ (Array<Symbol>) forwardables
Get the methods on the selectable that can be forwarded to from a model.
Instance Method Summary (collapse)
-
- (Selectable) all(criterion = nil)
(also: #all_in)
Add the $all criterion.
-
- (Selectable) and(*criterion)
(also: #all_of)
Add the $and criterion.
-
- (Selectable) between(criterion = nil)
Add the range selection.
-
- (Selectable) elem_match(criterion = nil)
Select with an $elemMatch.
-
- (Selectable) exists(criterion = nil)
Add the $exists selection.
-
- (Selectable) gt(criterion = nil)
Add the $gt criterion to the selector.
-
- (Selectable) gte(criterion = nil)
Add the $gte criterion to the selector.
-
- (Selectable) in(criterion = nil)
(also: #any_in)
Adds the $in selection to the selectable.
-
- (Selectable) lt(criterion = nil)
Add the $lt criterion to the selector.
-
- (Selectable) lte(criterion = nil)
Add the $lte criterion to the selector.
-
- (Selectable) max_distance(criterion = nil)
Add a $maxDistance selection to the selectable.
-
- (Selectable) mod(criterion = nil)
Adds $mod selection to the selectable.
-
- (Selectable) ne(criterion = nil)
(also: #excludes)
Adds $ne selection to the selectable.
-
- (Selectable) near(criterion = nil)
Adds a $near criterion to a geo selection.
-
- (Selectable) near_sphere(criterion = nil)
Adds a $nearSphere criterion to a geo selection.
-
- (true, false) negating?
Is the current selectable negating the next selection?.
-
- (Selectable) nin(criterion = nil)
(also: #not_in)
Adds the $nin selection to the selectable.
-
- (Selectable) nor(*criterion)
Adds $nor selection to the selectable.
-
- (Selectable) not
Negate the next selection.
-
- (Selectable) or(*criterion)
(also: #any_of)
Adds $or selection to the selectable.
-
- (Selectable) where(criterion = nil)
This is the general entry point for most MongoDB queries.
-
- (Selectable) with_size(criterion = nil)
Add a $size selection for array fields.
-
- (Selectable) with_type(criterion = nil)
Adds a $type selection to the selectable.
-
- (Selectable) within_box(criterion = nil)
Adds the $within/$box selection to the selectable.
-
- (Selectable) within_circle(criterion = nil)
Adds the $within/$center selection to the selectable.
-
- (Selectable) within_polygon(criterion = nil)
Adds the $within/$polygon selection to the selectable.
-
- (Selectable) within_spherical_circle(criterion = nil)
Adds the $within/$centerSphere selection to the selectable.
Methods included from Macroable
Methods included from Mergeable
#intersect, #override, #reset_strategies!, #union
Instance Attribute Details
- (Object) negating
Returns the value of attribute negating
13 14 15 |
# File 'lib/origin/selectable.rb', line 13 def negating @negating end |
- (Object) negating If the next spression is negated.
13 |
# File 'lib/origin/selectable.rb', line 13 attr_accessor :negating, :selector |
- (Object) selector
Returns the value of attribute selector
13 14 15 |
# File 'lib/origin/selectable.rb', line 13 def selector @selector end |
- (Object) selector The query selector.
13 |
# File 'lib/origin/selectable.rb', line 13 attr_accessor :negating, :selector |
Class Method Details
+ (Array<Symbol>) forwardables
Get the methods on the selectable that can be forwarded to from a model.
634 635 636 637 |
# File 'lib/origin/selectable.rb', line 634 def forwardables public_instance_methods(false) - [ :negating, :negating=, :negating?, :selector, :selector= ] end |
Instance Method Details
- (Selectable) all(criterion = nil) Also known as: all_in
Add the $all criterion.
28 29 30 |
# File 'lib/origin/selectable.rb', line 28 def all(criterion = nil) send(strategy || :__union__, with_array_values(criterion), "$all") end |
- (Selectable) and(*criterion) Also known as: all_of
Add the $and criterion.
45 46 47 |
# File 'lib/origin/selectable.rb', line 45 def and(*criterion) __multi__(criterion, "$and") end |
- (Selectable) between(criterion = nil)
Add the range selection.
63 64 65 66 67 68 69 70 |
# File 'lib/origin/selectable.rb', line 63 def between(criterion = nil) selection(criterion) do |selector, field, value| selector.store( field, { "$gte" => value.min, "$lte" => value.max } ) end end |
- (Selectable) elem_match(criterion = nil)
Select with an $elemMatch.
91 92 93 |
# File 'lib/origin/selectable.rb', line 91 def elem_match(criterion = nil) __override__(criterion, "$elemMatch") end |
- (Selectable) exists(criterion = nil)
Add the $exists selection.
112 113 114 115 116 |
# File 'lib/origin/selectable.rb', line 112 def exists(criterion = nil) typed_override(criterion, "$exists") do |value| ::Boolean.evolve(value) end end |
- (Selectable) gt(criterion = nil)
Add the $gt criterion to the selector.
134 135 136 |
# File 'lib/origin/selectable.rb', line 134 def gt(criterion = nil) __override__(criterion, "$gt") end |
- (Selectable) gte(criterion = nil)
Add the $gte criterion to the selector.
152 153 154 |
# File 'lib/origin/selectable.rb', line 152 def gte(criterion = nil) __override__(criterion, "$gte") end |
- (Selectable) in(criterion = nil) Also known as: any_in
Adds the $in selection to the selectable.
173 174 175 |
# File 'lib/origin/selectable.rb', line 173 def in(criterion = nil) send(strategy || :__intersect__, with_array_values(criterion), "$in") end |
- (Selectable) lt(criterion = nil)
Add the $lt criterion to the selector.
192 193 194 |
# File 'lib/origin/selectable.rb', line 192 def lt(criterion = nil) __override__(criterion, "$lt") end |
- (Selectable) lte(criterion = nil)
Add the $lte criterion to the selector.
210 211 212 |
# File 'lib/origin/selectable.rb', line 210 def lte(criterion = nil) __override__(criterion, "$lte") end |
- (Selectable) max_distance(criterion = nil)
Add a $maxDistance selection to the selectable.
225 226 227 |
# File 'lib/origin/selectable.rb', line 225 def max_distance(criterion = nil) __add__(criterion, "$maxDistance") end |
- (Selectable) mod(criterion = nil)
Adds $mod selection to the selectable.
242 243 244 |
# File 'lib/origin/selectable.rb', line 242 def mod(criterion = nil) __override__(criterion, "$mod") end |
- (Selectable) ne(criterion = nil) Also known as: excludes
Adds $ne selection to the selectable.
260 261 262 |
# File 'lib/origin/selectable.rb', line 260 def ne(criterion = nil) __override__(criterion, "$ne") end |
- (Selectable) near(criterion = nil)
Adds a $near criterion to a geo selection.
279 280 281 |
# File 'lib/origin/selectable.rb', line 279 def near(criterion = nil) __override__(criterion, "$near") end |
- (Selectable) near_sphere(criterion = nil)
Adds a $nearSphere criterion to a geo selection.
297 298 299 |
# File 'lib/origin/selectable.rb', line 297 def near_sphere(criterion = nil) __override__(criterion, "$nearSphere") end |
- (true, false) negating?
Is the current selectable negating the next selection?
346 347 348 |
# File 'lib/origin/selectable.rb', line 346 def negating? !!negating end |
- (Selectable) nin(criterion = nil) Also known as: not_in
Adds the $nin selection to the selectable.
318 319 320 |
# File 'lib/origin/selectable.rb', line 318 def nin(criterion = nil) send(strategy || :__intersect__, with_array_values(criterion), "$nin") end |
- (Selectable) nor(*criterion)
Adds $nor selection to the selectable.
334 335 336 |
# File 'lib/origin/selectable.rb', line 334 def nor(*criterion) __multi__(criterion, "$nor") end |
- (Selectable) not
Negate the next selection.
358 359 360 |
# File 'lib/origin/selectable.rb', line 358 def not tap { |query| query.negating = true } end |
- (Selectable) or(*criterion) Also known as: any_of
Adds $or selection to the selectable.
372 373 374 |
# File 'lib/origin/selectable.rb', line 372 def or(*criterion) __multi__(criterion, "$or") end |
- (Selectable) where(criterion = nil)
This is the general entry point for most MongoDB queries. This either creates a standard field: value selection, and expanded selection with the use of hash methods, or a $where selection if a string is provided.
441 442 443 |
# File 'lib/origin/selectable.rb', line 441 def where(criterion = nil) criterion.is_a?(String) ? js_query(criterion) : expr_query(criterion) end |
- (Selectable) with_size(criterion = nil)
This method is named #with_size not to conflict with any existing #size method on enumerables or symbols.
Add a $size selection for array fields.
393 394 395 396 397 |
# File 'lib/origin/selectable.rb', line 393 def with_size(criterion = nil) typed_override(criterion, "$size") do |value| ::Integer.evolve(value) end end |
- (Selectable) with_type(criterion = nil)
vurl.me/PGOU contains a list of all types.
Adds a $type selection to the selectable.
417 418 419 420 421 |
# File 'lib/origin/selectable.rb', line 417 def with_type(criterion = nil) typed_override(criterion, "$type") do |value| ::Integer.evolve(value) end end |
- (Selectable) within_box(criterion = nil)
Adds the $within/$box selection to the selectable.
458 459 460 |
# File 'lib/origin/selectable.rb', line 458 def within_box(criterion = nil) (criterion, "$within", "$box") end |
- (Selectable) within_circle(criterion = nil)
Adds the $within/$center selection to the selectable.
476 477 478 |
# File 'lib/origin/selectable.rb', line 476 def within_circle(criterion = nil) (criterion, "$within", "$center") end |
- (Selectable) within_polygon(criterion = nil)
Adds the $within/$polygon selection to the selectable.
498 499 500 |
# File 'lib/origin/selectable.rb', line 498 def within_polygon(criterion = nil) (criterion, "$within", "$polygon") end |
- (Selectable) within_spherical_circle(criterion = nil)
Adds the $within/$centerSphere selection to the selectable.
516 517 518 |
# File 'lib/origin/selectable.rb', line 516 def within_spherical_circle(criterion = nil) (criterion, "$within", "$centerSphere") end |