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
-
#__mongoize_time__ ⇒ ActiveSupport::TimeWithZone
Mongoizes an ActiveSupport::TimeWithZone into a time.
-
#_bson_to_i ⇒ Object
This code is copied from Time class extension in bson-ruby gem.
-
#mongoize ⇒ Time
Turn the object from the ruby type we deal with to a Mongo friendly type.
Instance Method Details
#__mongoize_time__ ⇒ ActiveSupport::TimeWithZone
Mongoizes an ActiveSupport::TimeWithZone into a time.
TimeWithZone always mongoize into TimeWithZone instances (which are themselves).
16 17 18 |
# File 'lib/mongoid/extensions/time_with_zone.rb', line 16 def __mongoize_time__ self end |
#_bson_to_i ⇒ Object
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 |
#mongoize ⇒ Time
Turn the object from the ruby type we deal with to a Mongo friendly type.
27 28 29 |
# File 'lib/mongoid/extensions/time_with_zone.rb', line 27 def mongoize ::ActiveSupport::TimeWithZone.mongoize(self) end |