class ActivePStore::QueryMethods::WhereDecider

Public Class Methods

new(scope) click to toggle source
# File lib/active_pstore/query_methods.rb, line 14
def initialize(scope)
  @scope = scope
end

Public Instance Methods

decide(conditions, method) click to toggle source
# 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