Module: ModelSet::Conditioned

Included in:
SQLQuery, SolrQuery, SphinxQuery
Defined in:
lib/model_set/conditioned.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#conditionsObject

Shared methods for dealing with conditions.



4
5
6
# File 'lib/model_set/conditioned.rb', line 4

def conditions
  @conditions
end

Instance Method Details

#add_conditions!(*conditions) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/model_set/conditioned.rb', line 6

def add_conditions!(*conditions)
  new_conditions = conditions.first.kind_of?(Symbol) ? [conditions.shift] : []

  conditions.each do |condition|
    if condition.kind_of?(Conditions)
      new_conditions << condition
    else
      new_conditions.concat([*transform_condition(condition)])
    end
  end
  return self if new_conditions.empty?

  @conditions = to_conditions(*new_conditions) << @conditions
  clear_cache!
end

#invert!Object



26
27
28
29
30
# File 'lib/model_set/conditioned.rb', line 26

def invert!
  raise 'cannot invert without conditions' if @conditions.nil?
  @conditions = ~@conditions
  clear_cache!
end

#to_conditions(*conditions) ⇒ Object



22
23
24
# File 'lib/model_set/conditioned.rb', line 22

def to_conditions(*conditions)
  Conditions.new(conditions, condition_ops)
end