lib/mongoid/matchable/in.rb
# encoding: utf-8
module Mongoid
module Matchable
# Performs matching for any value in an array.
class In < Default
# Return true if the attribute is in the values.
#
# @example Do the values match?
# matcher.matches?({ :key => 10 })
#
# @param [ Hash ] value The values to check.
#
# @return [ true, false ] If a value exists.
def matches?(value)
attribute_array = @attribute.nil? ? [nil] : Array.wrap(@attribute)
value.values.first.any? do |e|
attribute_array.any? { |_attribute| e === _attribute }
end
end
end
end
end