Module: Mongoid::Extensions::TimeWithZone

Defined in:
lib/mongoid/extensions/time_with_zone.rb

Overview

Adds type-casting behavior to ActiveSupport::TimeWithZone class.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#__mongoize_time__ActiveSupport::TimeWithZone

Mongoizes an ActiveSupport::TimeWithZone into a time.

TimeWithZone always mongoize into TimeWithZone instances (which are themselves).

Returns:

  • (ActiveSupport::TimeWithZone)

    self.



16
17
18
# File 'lib/mongoid/extensions/time_with_zone.rb', line 16

def __mongoize_time__
  self
end

#_bson_to_iObject

This code is copied from Time class extension in bson-ruby gem. It should be removed from here when the minimum BSON version is 5+. See jira.mongodb.org/browse/MONGOID-5491.



34
35
36
37
38
39
40
41
42
43
# File 'lib/mongoid/extensions/time_with_zone.rb', line 34

def _bson_to_i
  return super if defined?(super)
  # Workaround for JRuby's #to_i rounding negative timestamps up
  # rather than down (https://github.com/jruby/jruby/issues/6104)
  if BSON::Environment.jruby?
    (self - usec.to_r/1000000).to_i
  else
    to_i
  end
end

#mongoizeTime

Turn the object from the ruby type we deal with to a Mongo friendly type.

Examples:

Mongoize the object.

date_time.mongoize

Returns:

  • (Time)

    The object mongoized.



27
28
29
# File 'lib/mongoid/extensions/time_with_zone.rb', line 27

def mongoize
  ::ActiveSupport::TimeWithZone.mongoize(self)
end