Módulo: Mongoid::Touchable::InstanceMethods
- Incluido en:
- Documento
- Definido en:
- lib/mongoid/touchable.rb
Overview
Reestructurar usando ActiveSupport::Concern
Se utiliza para proporcionar funcionalidad de mezcla.
Colapso del resumen del método de instancia
-
#_clear_touch_updates(campo = nulo) ⇒ Objeto
privada
Borra los cambios en el modelo provocados por la operación táctil.
-
#_gather_touch_updates(ahora, campo = nulo) ⇒ Hash<String, Time>
privada
Establece de forma recursiva campos tangibles en el documento actual y en cada uno de sus padres, incluido el nodo raíz.
-
#_run_touch_callbacks_from_root ⇒ Objeto
privada
Ejecuta recursivamente devoluciones de llamadas :touch para el documento y sus padres, comenzando con el documento raíz y en cascada a través de cada documento secundario sucesivo.
-
#_padre_tocable? ⇒ Booleano
privada
Indica si el padre existe y se puede tocar.
-
#suppress_touch_callbacks ⇒ Objeto
privada
Suprime la invocación de devoluciones de llamadas táctiles, para la clase que incluye este módulo, mientras dura el bloque.
-
#toque(campo = nulo) ⇒ verdadero/falso
Toque el documento, lo que actualizará su marca de tiempo updated_at y, opcionalmente, el campo proporcionado a la hora actual.
-
#touch_callbacks_suppressed? ⇒ verdadero | falso
privada
Consulta si se están suprimiendo las devoluciones de llamadas táctiles para la clase que incluye este módulo.
Detalles del método de instancia
#_clear_touch_updates(campo = nulo) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Borra los cambios en el modelo provocados por la operación táctil.
93 94 95 96 97 |
# Archivo 'lib/mongoid/touchable.rb', línea 93 def _clear_touch_updates(Campo = nulo) eliminar_cambio(:actualizado_en) eliminar_cambio(Campo) Si Campo _padre._clear_touch_updates Si ¿_padre_tocable? end |
#_gather_touch_updates(ahora, campo = nulo) ⇒ Hash<String, Time>
Este método forma parte de una API privada. Debe evitarlo 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.
75 76 77 78 79 80 81 82 83 84 85 86 |
# Archivo 'lib/mongoid/touchable.rb', línea 75 def _gather_touch_updates(ahora, Campo = nulo) return Si ¿Se suprimieron las devoluciones de llamadas táctiles? Campo = nombre_del_campo_de_base_de_datos(Campo) atributo de escritura(:actualizado_en, ahora) Si respond_to?("actualizado_en=") atributo de escritura(Campo, ahora) Si Campo.¿presente? toques = _extraer_toques_de_conjuntos_atómicos(Campo) || {} toques.¡unir!(_padre._gather_touch_updates(ahora) || {}) Si ¿_padre_tocable? toques end |
#_run_touch_callbacks_from_root ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Ejecuta recursivamente devoluciones de llamadas :touch para el documento y sus padres, comenzando con el documento raíz y en cascada a través de cada documento secundario sucesivo.
104 105 106 107 108 |
# Archivo 'lib/mongoid/touchable.rb', línea 104 def _ejecutar_devoluciones_de_llamadas_táctiles_desde_la_raíz return Si ¿Se suprimieron las devoluciones de llamadas táctiles? _padre._ejecutar_devoluciones_de_llamadas_táctiles_desde_la_raíz Si ¿_padre_tocable? ejecutar_devoluciones de llamadas(:tocar) end |
#_padre_tocable? ⇒ Booleano
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Indica si el padre existe y se puede tocar.
113 114 115 |
# Archivo 'lib/mongoid/touchable.rb', línea 113 def ¿_padre_tocable? _padre && _asociación&.asociación inversa&.¿tocable? end |
#suppress_touch_callbacks ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Suprime la invocación de devoluciones de llamadas táctiles, para la clase que incluye este módulo, mientras dura el bloque.
22 23 24 |
# Archivo 'lib/mongoid/touchable.rb', línea 22 def suprimir_devoluciones_de_llamadas_táctiles Tocable.suprimir_devoluciones_de_llamadas_táctiles(yo.clase.Nombre) { rendimiento } end |
#toque(campo = nulo) ⇒ verdadero/falso
Esto no generará asociaciones automáticamente si esas opciones están configuradas.
Al tocar el documento, se actualiza su marca de tiempo "update_at" y, opcionalmente, el campo proporcionado a la hora actual. Si existen asociaciones "pertenence_to" con una opción táctil, también se actualizarán.
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# Archivo 'lib/mongoid/touchable.rb', línea 51 def contacto(Campo = nulo) return false Si _root.¿nuevo_registro? begin toques = _gather_touch_updates(Tiempo.actual, Campo) _root.Enviar(:persistir_operaciones_atómicas, '$set' => toques) Si toques.¿presente? _ejecutar_devoluciones_de_llamadas_táctiles_desde_la_raíz asegurar _clear_touch_updates(Campo) end true end |
#touch_callbacks_suppressed? ⇒ verdadero | falso
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Consulta si se están suprimiendo las devoluciones de llamadas táctiles para la clase que incluye este módulo.
32 33 34 |
# Archivo 'lib/mongoid/touchable.rb', línea 32 def ¿Se suprimieron las devoluciones de llamadas táctiles? Tocable.¿Se suprimieron las devoluciones de llamadas táctiles?(yo.clase.Nombre) end |