Clase: Mongoide::PersistenceContext
- Hereda:
-
Objeto
- Objeto
- Mongoid::Contexto de persistencia
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongoid/persistence_context.rb
Overview
Lógica de encapsulamiento de objetos para configurar/obtener un nombre de colección y base de datos y un cliente con opciones particulares para usar al persistir modelos.
Colapso delresumen constante
- OPCIONES_EXTRA =
Opciones extra además de las opciones del cliente de driver que determinan el contexto de persistencia.
[ :cliente, :recopilación, :opciones_de_colección ].freeze
- VALID_OPTIONS =
La lista completa de opciones de contexto de persistencia válidas.
( Mongo::Cliente::OPCIONES VÁLIDAS + EXTRA_OPTIONS ).freeze
Colapso delresumen de atributos de instancia
-
#options ⇒ Hash
solo lectura
Las opciones que definen este contexto de persistencia.
Colapso delresumen del método de clase
-
.clear(objeto, cluster = nulo, contexto_original = nulo) ⇒ Objeto
Limpia el contexto de persistencia para una clase específica o una instancia de modelo.
-
.obtener(objeto) ⇒ Mongoid::PersistenceContext
Obtenga el contexto de persistencia para una clase o instancia de modelo en particular.
-
.set(object, options_or_context) ⇒ Mongoid::PersistenceContext
Establezca el contexto de persistencia para una clase o instancia de modelo en particular.
Colapso del resumen del método de instancia
-
#==(otro) ⇒ verdadero | falso
Determinar si este contexto de persistencia es igual a otro.
-
#cliente ⇒ Mongo::Cliente
Obtenga el cliente para este contexto de persistencia.
-
#client_name ⇒ Symbol
Obtenga el nombre del cliente para este contexto de persistencia.
-
#colección(padre = nulo) ⇒ Mongo::Collection
Obtenga la colección para este contexto de persistencia.
-
#nombre_de_colección ⇒ Cadena
Obtenga el nombre de la colección para este contexto de persistencia.
-
#nombre_de_base_de_datos ⇒ Cadena
Obtenga el nombre de la base de datos para este contexto de persistencia.
-
#for_child(documento) ⇒ PersistenceContext
privada
Devuelve un nuevo contexto de persistencia que es coherente con el documento hijo dado, heredando los ajustes más apropiados.
-
#inicializar(objeto, opciones = {}) ⇒ PersistenceContext
constructor
Inicializar el objeto de contexto de persistencia.
-
#opciones_de_almacenamiento_solicitadas ⇒ Hash | nulo
privada
El subconjunto de opciones proporcionadas que pueden utilizarse como opciones de almacenamiento.
-
#cliente_reutilizable? ⇒ verdadero | falso
privada
Si el cliente del contexto se puede reutilizar más adelante y, por lo tanto, no se debe cerrar.
Detalles del constructor
#inicializar(objeto, opciones = {}) ⇒ PersistenceContext
Inicializar el objeto de contexto de persistencia.
46 47 48 49 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 46 def inicializar(Objeto, opta = {}) @objeto = Objeto (opta) end |
Detalles de los atributos de instancia
#opciones ⇒ Hash (solo lectura)
Las opciones que definen este contexto de persistencia.
20 21 22 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 20 def @opciones end |
Detalles del método de clase
.clear(objeto, cluster = nulo, contexto_original = nulo) ⇒ Objeto
Limpia el contexto de persistencia para una clase específica o una instancia de modelo.
271 272 273 274 275 276 277 278 279 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 271 def borrar(Objeto, clúster = nulo, contexto original = nulo) Si context = Obtener(Objeto) a no ser que clúster.nil? || context.clúster.¿igual?(clúster) context.Cliente.cerrar a no ser que context.reusable_client? end end asegurar store_context(Objeto, contexto original) end |
.obtener(objeto) ⇒ Mongoid::PersistenceContext
Obtenga el contexto de persistencia para una clase o instancia de modelo en particular.
258 259 260 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 258 def Obtener(Objeto) get_context(Objeto) end |
.set(objeto, opciones_o_contexto) ⇒ Mongoid::PersistenceContext
Establezca el contexto de persistencia para una clase o instancia de modelo en particular.
Si ya existe un contexto de persistencia establecido, las opciones en el contexto existente se combinan con las opciones dadas a la llamada del conjunto.
235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 235 def conjunto(Objeto, ) existing_context = get_context(Objeto) = Si existing_context existing_context. else {} end Si .is_a?(Contexto de persistencia) = . end = .unir() context = Contexto de persistencia.Nuevo(Objeto, ) store_context(Objeto, context) end |
Detalles del método de instancia
#==(otro) ⇒ verdadero | falso
Determinar si este contexto de persistencia es igual a otro.
154 155 156 157 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 154 def ==(otros) return false a no ser que otros.is_a?(Contexto de persistencia) == otros. end |
#cliente ⇒ Mongo::Cliente
Obtenga el cliente para este contexto de persistencia.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 117 def Cliente @cliente ||= begin Cliente = Clientes.con_nombre(nombre_del_cliente) = Si opción_nombre_base_datos Cliente = Cliente.uso(nombre_de_la_base_de_datos) = .excepto(:database, 'database') end Cliente = Cliente.con() a no ser que .¿vacío? Cliente end end |
#client_name ⇒ Symbol
Obtenga el nombre del cliente para este contexto de persistencia.
140 141 142 143 144 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 140 def nombre_del_cliente @nombre_del_cliente ||= __evaluate__([:cliente]) || Compacto.anulación del cliente || __evaluate__([:cliente]) end |
#colección(padre = nulo) ⇒ Mongo::Collection
Obtenga la colección para este contexto de persistencia.
81 82 83 84 85 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 81 def Colección(padre = nulo) padre ? padre.Colección.con(.excepto(:database, "base de datos")) : Cliente[nombre_de_colección.a_sym] end |
#nombre_de_colección ⇒ Cadena
Obtenga el nombre de la colección para este contexto de persistencia.
94 95 96 97 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 94 def nombre_de_colección @nombre_de_colección ||= (__evaluate__([:recopilación] || [:recopilación])) end |
#nombre_de_base_de_datos ⇒ Cadena
Obtenga el nombre de la base de datos para este contexto de persistencia.
106 107 108 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 106 def nombre_de_la_base_de_datos __evaluate__(opción_nombre_base_datos) || Cliente.database.Nombre end |
#for_child(documento) ⇒ PersistenceContext
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve un nuevo contexto de persistencia que es coherente con el documento hijo dado, heredando los ajustes más apropiados.
59 60 61 62 63 64 65 66 67 68 69 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 59 def para_niño(Documento) Si Documento.is_a?(Clase) return yo Si Documento == (@objeto.is_a?(Clase) ? @objeto : @objeto.clase) elsif Documento.is_a?(Mongoid::Documento) return yo Si Documento.clase == (@objeto.is_a?(Clase) ? @objeto : @objeto.clase) else propagar ArgumentError, 'debe especificar una clase o una instancia de documento ' end Contexto de persistencia.Nuevo(Documento, .unir(Documento.)) end |
#opciones_de_almacenamiento_solicitadas ⇒ Hash | nulo
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
El subconjunto de opciones proporcionadas que pueden utilizarse como opciones de almacenamiento.
181 182 183 184 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 181 def segmento = @opciones.segmento(*Mongoid::Clientes::Validadores::Almacenamiento::OPCIONES VÁLIDAS) segmento.any? ? segmento : nulo end |
#cliente_reutilizable? ⇒ 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.
Si el cliente del contexto se puede reutilizar más adelante y, por lo tanto, no se debe cerrar.
Si el contexto de persistencia se solicita solo con la opción :client, significa que el contexto debe usar un cliente configurado en mongoid.yml. Estos clientes no deben cerrarse al borrar el contexto, ya que se reutilizarán posteriormente.
170 171 172 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 170 def reusable_client? @opciones.claves == [:cliente] end |