module Mongoid::Criteria::Queryable::Extensions::Range
Adds query type-casting behavior to Range
class.
Public Instance Methods
__array__()
click to toggle source
Get the range as an array.
@example Get the range as an array.
1...3.__array__
@return [ Array
] The range as an array.
# File lib/mongoid/criteria/queryable/extensions/range.rb, line 18 def __array__ to_a end
__evolve_date__()
click to toggle source
Convert the range to a $gte/$lte mongo friendly query for dates.
@example Evolve the range.
(11231312..213123131).__evolve_date__
@return [ Hash
] The $gte/$lte range query with times at UTC midnight.
# File lib/mongoid/criteria/queryable/extensions/range.rb, line 28 def __evolve_date__ __evolve_range_naive__.transform_values! {|v| v&.__evolve_date__ } end
__evolve_range__(serializer: nil)
click to toggle source
Convert the range to a $gte/$lte mongo friendly query.
@example Evolve the range.
(11231312..213123131).__evolve_range__
@param [ Object
] serializer The optional serializer for the field.
@return [ Hash
] The $gte/$lte range query.
@api private
# File lib/mongoid/criteria/queryable/extensions/range.rb, line 52 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__()
click to toggle source
Convert the range to a $gte/$lte mongo friendly query for times.
@example Evolve the range.
(11231312..213123131).__evolve_date__
@return [ Hash
] The $gte/$lte range query with times in UTC.
# File lib/mongoid/criteria/queryable/extensions/range.rb, line 38 def __evolve_time__ __evolve_range_naive__.transform_values! {|v| v&.__evolve_time__ } end
Private Instance Methods
__evolve_range_naive__()
click to toggle source
@note This method’s return value will be mutated by the _evolve*__
methods, therefore it must always return new objects.
@api private
# File lib/mongoid/criteria/queryable/extensions/range.rb, line 72 def __evolve_range_naive__ hash = {} hash['$gte'] = self.begin if self.begin hash[exclude_end? ? "$lt" : "$lte"] = self.end if self.end hash end