Module: Mongoid::Criteria::Queryable::Mergeable

Included in:
Mongoid::Criteria::Queryable
Defined in:
lib/mongoid/criteria/queryable/mergeable.rb

Overview

Contains behavior for merging existing selection with new selection.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#strategyObject

Returns the value of attribute strategy.



12
13
14
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 12

def strategy
  @strategy
end

#strategy The name of the current strategy.(Thenameofthecurrentstrategy.) ⇒ Object



12
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 12

attr_accessor :strategy

Instance Method Details

#and_with_operator(criterion, operator) ⇒ Criteria

Merge criteria with operators using the and operator.

Parameters:

  • criterion (Hash)

    The criterion to add to the criteria.

  • operator (String)

    The MongoDB operator.

Returns:

  • (Criteria)

    The resulting criteria.



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 62

def and_with_operator(criterion, operator)
  crit = self
  if criterion
    criterion.each_pair do |field, value|
      val = prepare(field, operator, value)
      # The prepare method already takes the negation into account. We
      # set negating to false here so that ``and`` doesn't also apply
      # negation and we have a double negative.
      crit.negating = false
      crit = crit.and(field => val)
    end
  end
  crit
end

#intersectMergeable

Instruct the next mergeable call to use intersection.

Examples:

Use intersection on the next call.

mergeable.intersect.in(field: [ 1, 2, 3 ])

Returns:

  • (Mergeable)

    The intersect flagged mergeable.



20
21
22
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 20

def intersect
  use(:__intersect__)
end

#overrideMergeable

Instruct the next mergeable call to use override.

Examples:

Use override on the next call.

mergeable.override.in(field: [ 1, 2, 3 ])

Returns:

  • (Mergeable)

    The override flagged mergeable.



30
31
32
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 30

def override
  use(:__override__)
end

#reset_strategies!Criteria

Clear the current strategy and negating flag, used after cloning.

Examples:

Reset the strategies.

mergeable.reset_strategies!

Returns:



50
51
52
53
54
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 50

def reset_strategies!
  self.strategy = nil
  self.negating = nil
  self
end

#unionMergeable

Instruct the next mergeable call to use union.

Examples:

Use union on the next call.

mergeable.union.in(field: [ 1, 2, 3 ])

Returns:

  • (Mergeable)

    The union flagged mergeable.



40
41
42
# File 'lib/mongoid/criteria/queryable/mergeable.rb', line 40

def union
  use(:__union__)
end