Module: Mongoid::Extensions::Time::ClassMethods

Defined in:
build/mongoid-7.3/lib/mongoid/extensions/time.rb

Instance Method Summary collapse

Instance Method Details

#configuredTime

Get the configured time to use when converting - either the time zone or the time.

Examples:

Get the configured time.

::Time.configured

Returns:

  • (Time)

    The configured time.

Since:

  • 3.0.0



50
51
52
# File 'build/mongoid-7.3/lib/mongoid/extensions/time.rb', line 50

def configured
  Mongoid.use_activesupport_time_zone? ? (::Time.zone || ::Time) : ::Time
end

#demongoize(object) ⇒ Time

Convert the object from its mongo friendly ruby type to this type.

Examples:

Demongoize the object.

Time.demongoize(object)

Parameters:

  • object (Time)

    The time from Mongo.

Returns:

  • (Time)

    The object as a date.

Since:

  • 3.0.0



64
65
66
67
68
69
70
71
# File 'build/mongoid-7.3/lib/mongoid/extensions/time.rb', line 64

def demongoize(object)
  return nil if object.blank?
  object = object.getlocal unless Mongoid::Config.use_utc?
  if Mongoid::Config.use_activesupport_time_zone?
    object = object.in_time_zone(Mongoid.time_zone)
  end
  object
end

#mongoize(object) ⇒ Time

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

Examples:

Mongoize the object.

Time.mongoize("2012-1-1")

Parameters:

  • object (Object)

    The object to mongoize.

Returns:

  • (Time)

    The object mongoized.

Since:

  • 3.0.0



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'build/mongoid-7.3/lib/mongoid/extensions/time.rb', line 84

def mongoize(object)
  return nil if object.blank?
  begin
    time = object.__mongoize_time__
    if object.respond_to?(:sec_fraction)
      ::Time.at(time.to_i, object.sec_fraction * 10**6).utc
    elsif time.respond_to?(:subsec)
      ::Time.at(time.to_i, time.subsec * 10**6).utc
    else
      ::Time.at(time.to_i, time.usec).utc
    end
  rescue ArgumentError
    nil
  end
end