Module: Mongoid::Criteria::Queryable::Extensions::Range

Defined in:
build/mongoid-8.1/lib/mongoid/criteria/queryable/extensions/range.rb

Overview

This module contains additional range behavior.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#__array__Array

Get the range as an array.

Examples:

Get the range as an array.

1...3.__array__

Returns:

  • (Array)

    The range as an array.



17
18
19
# File 'build/mongoid-8.1/lib/mongoid/criteria/queryable/extensions/range.rb', line 17

def __array__
  to_a
end

#__evolve_date__Hash

Convert the range to a $gte/$lte mongo friendly query for dates.

Examples:

Evolve the range.

(11231312..213123131).__evolve_date__

Returns:

  • (Hash)

    The $gte/$lte range query with times at UTC midnight.



27
28
29
# File 'build/mongoid-8.1/lib/mongoid/criteria/queryable/extensions/range.rb', line 27

def __evolve_date__
  __evolve_range_naive__.transform_values! {|v| v&.__evolve_date__ }
end

#__evolve_range__(serializer: nil) ⇒ Hash

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.

Convert the range to a $gte/$lte mongo friendly query.

Examples:

Evolve the range.

(11231312..213123131).__evolve_range__

Parameters:

  • serializer (Object) (defaults to: nil)

    The optional serializer for the field.

Returns:

  • (Hash)

    The $gte/$lte range query.



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'build/mongoid-8.1/lib/mongoid/criteria/queryable/extensions/range.rb', line 51

def __evolve_range__(serializer: nil)
  __evolve_range_naive__.transform_values! do |value|
    if serializer
      serializer.evolve(value)
    else
      case value
      when Time, DateTime then value.__evolve_time__
      when Date then value.__evolve_date__
      else value
      end
    end
  end
end

#__evolve_time__Hash

Convert the range to a $gte/$lte mongo friendly query for times.

Examples:

Evolve the range.

(11231312..213123131).__evolve_date__

Returns:

  • (Hash)

    The $gte/$lte range query with times in UTC.



37
38
39
# File 'build/mongoid-8.1/lib/mongoid/criteria/queryable/extensions/range.rb', line 37

def __evolve_time__
  __evolve_range_naive__.transform_values! {|v| v&.__evolve_time__ }
end