Sha256: 9b410042e287325aecfe173a9e26a7fd1e8faeb305b410d8d0f1dbe3114c9a23

Contents?: true

Size: 624 Bytes

Versions: 43

Compression:

Stored size: 624 Bytes

Contents

module Mongoid
  module Matcher

    # @api private
    module Nor
      module_function def matches?(document, expr)
        unless expr.is_a?(Array)
          raise Errors::InvalidQuery, "$nor argument must be an array: #{Errors::InvalidQuery.truncate_expr(expr)}"
        end

        if expr.empty?
          raise Errors::InvalidQuery, "$nor argument must be a non-empty array: #{Errors::InvalidQuery.truncate_expr(expr)}"
        end

        expr.each do |sub_expr|
          if Expression.matches?(document, sub_expr)
            return false
          end
        end

        expr.any?
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
mongoid-8.0.10 lib/mongoid/matcher/nor.rb
mongoid-8.1.10 lib/mongoid/matcher/nor.rb
mongoid-8.1.9 lib/mongoid/matcher/nor.rb
mongoid-8.0.9 lib/mongoid/matcher/nor.rb
mongoid-8.1.8 lib/mongoid/matcher/nor.rb
mongoid-8.1.7 lib/mongoid/matcher/nor.rb
mongoid-8.1.6 lib/mongoid/matcher/nor.rb
mongoid-8.0.8 lib/mongoid/matcher/nor.rb
mongoid-8.1.5 lib/mongoid/matcher/nor.rb
mongoid-8.1.4 lib/mongoid/matcher/nor.rb
mongoid-8.0.7 lib/mongoid/matcher/nor.rb
mongoid-8.1.3 lib/mongoid/matcher/nor.rb
mongoid-8.1.2 lib/mongoid/matcher/nor.rb
mongoid-8.0.6 lib/mongoid/matcher/nor.rb
mongoid-7.5.4 lib/mongoid/matcher/nor.rb
mongoid-8.1.1 lib/mongoid/matcher/nor.rb
mongoid-8.0.5 lib/mongoid/matcher/nor.rb
mongoid-8.1.0 lib/mongoid/matcher/nor.rb
mongoid-7.5.3 lib/mongoid/matcher/nor.rb
mongoid-8.0.4 lib/mongoid/matcher/nor.rb