Módulo: Mongoid::Extensiones::Time::ClassMethods

Definido en:
lib/mongoid/extensions/time.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#demongoize(objeto) ⇒ Hora | nil

Convierte el objeto de su tipo Ruby compatible con mongo a este tipo.

Ejemplos:

Desmonguize el objeto.

Time.demongoize(object)

Parámetros:

  • Objeto (Hora)

    El tiempo desde Mongo.

Devuelve:

  • (Tiempo | nil)

    El objeto como un tiempo.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Archivo 'lib/mongoid/extensions/time.rb', línea 37

def desmongoizar(Objeto)
  return si Objeto.blank?

  hora = si Objeto.¿acts_like?(:time)
           Mongoid::Config.usar_utc? ? Objeto : Objeto.getlocal
         elsif Objeto.¿acts_like?(:date)
           ::fecha.desmongoizar(Objeto).to_time
         elsif Objeto.is_a?(String)
           begin
             Objeto.__mongoize_time__
           rescate ArgumentError
             nulo
           end
         elsif Objeto.is_a?(BSON::Marca de tiempo)
           ::Tiempo.en(Objeto.Segundos)
         end

  return si hora.nil?

  hora.in_time_zone(Mongoid.time_zone)
end

#mongoize(object) ⇒ Time | nil

Convierte el objeto desde el tipo Ruby con el que trabajamos a un tipo compatible con Mongo.

Ejemplos:

Mongoize el objeto.

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

Parámetros:

  • Objeto (objeto)

    El objeto a mongoizar.

Devuelve:

  • (Tiempo | nil)

    El objeto mongoizado o nulo.



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Archivo 'lib/mongoid/extensions/time.rb', línea 68

def mongoize(Objeto)
  return si Objeto.blank?

  begin
    hora = Objeto.respond_to?(:__mongoize_time__) ? Objeto.__mongoize_time__ : nulo
  rescate ArgumentError
    return
  end

  return a menos que hora.¿acts_like?(:time)

  si Objeto.respond_to?(:sec_fraction)
    ::Tiempo.en(hora.to_i, Objeto.sec_fraction * (10**6)).UTC
  elsif hora.respond_to?(subsec)
    ::Tiempo.en(hora.to_i, hora.subsección * (10**6)).UTC
  else
    ::Tiempo.en(hora.to_i, hora.usec).UTC
  end
end