Module: Mongoid::Matcher::Size Private

Defined in:
build/mongoid-7.3/lib/mongoid/matcher/size.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Class Method Summary collapse

Class Method Details

.matches?(exists, value, condition) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'build/mongoid-7.3/lib/mongoid/matcher/size.rb', line 6

module_function def matches?(exists, value, condition)
  case condition
  when Float
    raise Errors::InvalidQuery, "$size argument must be a non-negative integer: #{Errors::InvalidQuery.truncate_expr(condition)}"
  when Numeric
    if condition < 0
      raise Errors::InvalidQuery, "$size argument must be a non-negative integer: #{Errors::InvalidQuery.truncate_expr(condition)}"
    end
  else
    raise Errors::InvalidQuery, "$size argument must be a non-negative integer: #{Errors::InvalidQuery.truncate_expr(condition)}"
  end

  if Array === value
    value.length == condition
  else
    false
  end
end