Clase: Mongoide::PersistenceContext
- Hereda:
-
Objeto
- Objeto
- Mongoid::PersistenceContext
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongoid/persistence_context.rb
Overview
Objeto que encapsula la lógica para establecer/obtener una colección y el nombre de una base de datos, así como un cliente con opciones particulares para utilizar al almacenar modelos de manera persistente.
Colapso delresumen constante
- EXTRA_OPTIONS =
Opciones extra además de las opciones del cliente de driver que determinan el contexto de persistencia.
[ cliente, colección, :opciones_de_colección ].freeze
- VALID_OPTIONS =
La lista completa de opciones válidas de contexto de persistencia.
( Mongo::Cliente::OPCIONES VÁLIDAS + EXTRA_OPTIONS ).freeze
Resumen de atributos de la instancia colapsar
-
#options ⇒ Hash
Solo lectura
Las opciones que definen este contexto de persistencia.
Resumen del método de clase colapsar
-
.limpiar(objeto, clúster = nulo, contexto_original = nulo) ⇒ Objeto
Limpia el contexto de persistencia para una clase específica o una instancia de modelo.
-
.obtener(objeto) ⇒ Mongoid::PersistenceContext
Obtén el contexto de persistencia para una clase o instancia de modelo específica.
-
.set(object, options_or_context) ⇒ Mongoid::PersistenceContext
Establece el contexto de persistencia para una clase o instancia de modelo en particular.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ verdadero | falso
Determine si este contexto de persistencia es igual a otro.
-
#cliente ⇒ Mongo::Client
Obtén 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.
-
#collection_name ⇒ string
Obtén el nombre de la colección para este contexto de persistencia.
-
#database_name ⇒ String
Obtén el nombre de la base de datos para este contexto de persistencia.
-
#for_child(documento) ⇒ PersistenceContext
privado
Devuelve un nuevo contexto de persistencia que es coherente con el documento hijo dado, heredando los ajustes más apropiados.
-
#inicializar(objeto, opts = {}) ⇒ PersistenceContext
constructor
Inicializa el objeto de contexto de persistencia.
-
#requested_storage_options ⇒ Hash | nil
privado
El subconjunto de las opciones proporcionadas que se pueden utilizar como opciones de almacenamiento.
-
#reusable_client? ⇒ true | false
privado
Si el cliente del contexto puede ser reutilizado más tarde y, por lo tanto, no debe cerrarse.
Detalles del constructor
#initialize(objeto, opts = {}) ⇒ PersistenceContext
Inicializa 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 @options end |
Detalles del método de clase
.clear(objeto, clúster = nil, original_context = nil) ⇒ 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, original_context = nulo) si context = Obtener(Objeto) a menos que clúster.nil? || context.clúster.¿igual?(clúster) context.Cliente.Cerrar a menos que context.reusable_client? end end asegurar store_context(Objeto, original_context) end |
.get(objeto) ⇒ Mongoid::PersistenceContext
Obtén el contexto de persistencia para una clase o instancia de modelo específica.
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
Establece el contexto de persistencia para una clase o instancia de modelo en particular.
Si ya existe un contexto de persistencia configurado, las opciones en el contexto existente se combinan con las opciones proporcionadas a la llamada set.
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?(PersistenceContext) = . end = .fusionar() context = PersistenceContext.Nuevo(Objeto, ) store_context(Objeto, context) end |
Detalles del método de instancia
#==(otro) ⇒ verdadero | falso
Determine 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 menos que Otros.is_a?(PersistenceContext) == Otros. end |
#cliente ⇒ Mongo::Client
Obtén 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 database_name_option Cliente = Cliente.Usar(nombre_de_la_base_de_datos) = .excepto(:database, 'database') end Cliente = Cliente.con() a menos 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 @client_name ||= __evaluate__([cliente]) || Compacto.anulación del cliente || __evaluate__([cliente]) end |
#colección(parent = nil) ⇒ 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_colección.to_sym] end |
#collection_name ⇒ String
Obtén 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_colección @collection_name ||= (__evaluate__([colección] || [colección])) end |
#nombre_de_base_de_datos ⇒ Cadena
Obtén 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__(database_name_option) || Cliente.database.Nombre end |
#for_child(document) ⇒ 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 for_child(Documento) si Documento.is_a?(clase) return sí mismo si Documento == (@objeto.is_a?(clase) ? @objeto : @objeto.clase) elsif Documento.is_a?(Mongoid::Documento) return sí mismo si Documento.clase == (@objeto.is_a?(clase) ? @objeto : @objeto.clase) else propagar ArgumentError, 'debe especificar una clase o una instancia de documento' end PersistenceContext.Nuevo(Documento, .fusionar(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 las opciones proporcionadas que se pueden utilizar como opciones de almacenamiento.
181 182 183 184 |
# Archivo 'lib/mongoid/persistence_context.rb', línea 181 def rebanada = @options.rebanada(*Mongoid::Clientes::Validadores::Almacenamiento::OPCIONES VÁLIDAS) rebanada.any? ? rebanada : nulo end |
#cliente_reutilizable? ⇒ true | false
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 puede ser reutilizado más tarde y, por lo tanto, no debe cerrarse.
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? @options.claves == [cliente] end |