123456789_123456789_123456789_123456789_123456789_

Module: Mongoid::Extensions::TimeWithZone

Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/mongoid/extensions/time_with_zone.rb

Overview

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

Instance Method Summary

Instance Method Details

#__mongoize_time__ActiveSupport::TimeWithZone

Mongoizes an ::ActiveSupport::TimeWithZone into a time.

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

Returns:

[ GitHub ]

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

def __mongoize_time__
  self
end

#_bson_to_i

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.

[ GitHub ]

  
# 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.

[ GitHub ]

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

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