21 lines
442 B
Ruby
21 lines
442 B
Ruby
# frozen_string_literal: true
|
|
|
|
module AceOfBase
|
|
class Query
|
|
# A query filter which matches when all specified keys meet the specified
|
|
# values.
|
|
class Eq < Operator
|
|
def initialize(filters = {})
|
|
ensure_valid_fields!(filters.keys)
|
|
|
|
@filters = filters
|
|
end
|
|
|
|
def match?(record)
|
|
filters.all? do |(key, value)|
|
|
record.public_send(key) == value
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|