Módulo: Mongoid::Touchable::InstanceMethods
- Incluido en:
- Documento
- Definido en:
- lib/mongoid/touchable.rb
Overview
Reestructurar usando ActiveSupport::Concern
Se usa para proporcionar la funcionalidad de mixin.
Resumen del método de instancia colapsar
-
#_clear_touch_updates(campo = nil) ⇒ objeto
privado
Borra los cambios en el modelo causados por la operación táctil.
-
#_gather_touch_updates(ahora, campo = nil) ⇒ Hash<String, Time>
privado
Establece recursivamente los campos interactivos en el documento actual y en cada uno de sus padres, incluido el nodo raíz.
-
#_run_touch_callbacks_from_root ⇒ Objeto
privado
Ejecuta recursivamente los callbacks :touch para el documento y sus padres, comenzando con el documento raíz y propagándose a través de cada documento hijo sucesivo.
-
#_touchable_parent? ⇒ Booleano
privado
Indica si el elemento principal existe y se puede tocar.
-
#suppress_touch_callbacks(&block) ⇒ Object
privado
Suprime la invocación de callbacks táctiles, para la clase que incluye este módulo, durante la duración del bloque.
-
#touch(campo = nil) ⇒ true/false
Toca el documento, actualizando efectivamente su marca de tiempo actualizada y, opcionalmente, el campo proporcionado a la hora actual.
-
#touch_callbacks_suppressed? ⇒ true | false
privado
Consulta si las funciones de retorno táctiles están siendo suprimidas para la clase que incluye este módulo.
Detalles del método de instancia
#_clear_touch_updates(campo = nil) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Borra los cambios en el modelo causados por la operación táctil.
89 90 91 92 93 |
# Archivo 'lib/mongoid/touchable.rb', línea 89 def _clear_touch_updates(Campo = nulo) delete_change(:updated_at) delete_change(Campo) si Campo _parent._clear_touch_updates si _touchable_parent? end |
#_recolectar_actualizaciones_de_táctil(ahora, campo = nil) ⇒ Hash<String, Time>
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Establece de manera recursiva los campos tocables en el documento actual y en cada uno de sus padres, incluido el nodo raíz. Devuelve las operaciones atómicas combinadas $set que se deben realizar en el documento raíz.
71 72 73 74 75 76 77 78 79 80 81 82 |
# Archivo 'lib/mongoid/touchable.rb', línea 71 def _gather_touch_updates(ahora, Campo = nulo) return si ¿Están suprimidos los callbacks táctiles? Campo = database_field_name(Campo) write_attribute(:updated_at, ahora) si respond_to?(:updated_at=) write_attribute(Campo, ahora) si Campo.¿presente? toques = _extract_touches_from_atomic_sets(Campo) || {} toques.¡Actualizar!(_parent._gather_touch_updates(ahora) || {}) si _touchable_parent? toques end |
#_ejecutar_touch_callbacks_from_root ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Ejecuta recursivamente los callbacks :touch para el documento y sus padres, comenzando con el documento raíz y propagándose a través de cada documento hijo sucesivo.
100 101 102 103 104 105 |
# Archivo 'lib/mongoid/touchable.rb', línea 100 def ejecutar return si ¿Están suprimidos los callbacks táctiles? _parent.ejecutar si _touchable_parent? run_callbacks(tocar) end |
#_touchable_parent? ⇒ Booleano
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Indica si el elemento principal existe y se puede tocar.
110 111 112 |
# Archivo 'lib/mongoid/touchable.rb', línea 110 def _touchable_parent? _parent && _association&.asociación inversa&.¿tocable? end |
#suppress_touch_callbacks(&block) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Suprime la invocación de callbacks táctiles, para la clase que incluye este módulo, durante la duración del bloque.
18 19 20 |
# Archivo 'lib/mongoid/touchable.rb', línea 18 def suprimir_callbacks_táctiles(&bloque) Tocable.suprimir_callbacks_táctiles(sí mismo.clase.Nombre, &bloque) end |
#touch(campo = nil) ⇒ true/false
Esto no generará automáticamente asociaciones si esas opciones están configuradas.
Toca el documento, actualizando su marca temporal updated_at y, opcionalmente, el campo proporcionado a la hora actual. Si existen asociaciones belongs_to con una opción de actualización, también se actualizarán.
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# Archivo 'lib/mongoid/touchable.rb', línea 47 def toque(Campo = nulo) return false si _root.nuevo_registro? begin toques = _gather_touch_updates(Tiempo.Actual, Campo) _root.enviar(persistencia_operaciones_atómicas, '$set' => toques) si toques.¿presente? ejecutar asegurar _clear_touch_updates(Campo) end true end |
#touch_callbacks_suppressed? ⇒ true | false
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Consulta si las funciones de retorno táctiles están siendo suprimidas para la clase que incluye este módulo.
28 29 30 |
# Archivo 'lib/mongoid/touchable.rb', línea 28 def ¿Están suprimidos los callbacks táctiles? Tocable.¿Están suprimidos los callbacks táctiles?(sí mismo.clase.Nombre) end |