Class: ActivePStore::QueryMethods::WhereDecider

Inherits:
Object
  • Object
show all
Defined in:
lib/active_pstore/query_methods.rb

Instance Method Summary collapse

Constructor Details

#initialize(scope) ⇒ WhereDecider

Returns a new instance of WhereDecider.



14
15
16
# File 'lib/active_pstore/query_methods.rb', line 14

def initialize(scope)
  @scope = scope
end

Instance Method Details

#decide(conditions, method) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/active_pstore/query_methods.rb', line 18

def decide(conditions, method)
  raise 'Illegal method error.' unless i(reject select).include? method

  return @scope if conditions.empty?

  conditions.each do |key, value|
    @scope = @scope.public_send(method) {|obj|
      case value
      when Array, Range
        value.include?(obj.public_send(key))
      else
        obj.public_send(key) == value
      end
    }
  end

  ActivePStore::Collection.new(@scope)
end