Classe: Mongoid::PersistenceContext
- Herda:
-
Objeto
- Objeto
- Mongoid::PersistenceContext
- Estendido por:
- Encaminhável
- Definido em:
- lib/mongoid/persistence_context.rb
Visão geral
Lógica de encapsulamento de objetos para definir/obter uma collection e nome de banco de dados de dados e um cliente com opções específicas a serem usadas ao persistir modelos.
Colapsode resumo constante
- EXTRA_OPTIONS =
Opções extras, além das opções do cliente driver, que determinam o contexto de persistência.
[ :cliente, :collection, :collection_options ].congelar
- VALID_OPTIONS =
A lista completa de opções válidas de contexto de persistência.
( mongo::Cliente::VALID_OPTIONS + EXTRA_OPTIONS ).congelar
Recolhimento do Resumo do atributo de instância
-
#opções ➤ Hash
Somente leitura
As opções que definem este contexto de persistência.
Recolhimento do Resumo do método de classe
-
.limpar(objeto, cluster = nil, original_context = nil) ➤ Objeto
Limpe o contexto de persistência de uma classe ou instância de modelo específica.
-
.obter(objeto) ➤ Mongoid::PersistenceContext
Obtenha o contexto de persistência para uma classe específica ou instância de modelo.
-
.set(objeto, options_or_context) ➤ Mongoid::PersistenceContext
Defina o contexto de persistência para uma classe ou instância de modelo específica.
Recolhimento do Resumo do método de instância
-
#==(outro) ➤ verdadeiro | false
Determine se esse contexto de persistência é igual a outro.
-
#cliente ➤ Mongo::Client
Obtenha o cliente para este contexto de persistência.
-
#client_name ⇒ Symbol
Obtenha o nome do cliente para este contexto de persistência.
-
#collection(parent = nil) ➤ Mongo::Collection
Obtenha a coleção para este contexto de persistência.
-
#collection_name ➤ string
Obtenha o nome da coleção para este contexto de persistência.
-
#database_name ➤ string
Obtenha o nome do banco de dados para este contexto de persistência.
-
#for_child(documento) ➤ PersistenceContext
privado
Retorna um novo contexto de persistência que é consistente com o documento secundário fornecido, herdando as configurações mais apropriadas.
-
#initialize(object, opts = {}) ➤ PersistenceContext
construtor
Inicialize o objeto de contexto de persistência.
-
#ordered_storage_options ➤ Hash | nada
privado
O subconjunto de opções fornecidas que podem ser usadas como opções de armazenamento.
-
#reusable_client? ➤ verdadeiro | false
privado
Se o cliente do contexto pode ser reutilizado posteriormente e, portanto, não deve ser fechado.
Detalhes do construtor
#initialize(objeto, opts = {}) ➤ PersistenceContext
Inicialize o objeto de contexto de persistência.
46 47 48 49 |
# File 'lib/mongoid/persistence_context.rb', linha 46 def inicializar(objeto, opciona = {}) @ objeto = objeto (opciona) end |
Detalhes do atributo da instância
#opções ➤ Hash (somente leitura)
As opções que definem este contexto de persistência.
20 21 22 |
# File 'lib/mongoid/persistence_context.rb', linha 20 def @opções end |
Detalhes do método de classe
.limpar(objeto, cluster = nil, original_context = nil) ➤ Objeto
Limpe o contexto de persistência de uma classe ou instância de modelo específica.
271 272 273 274 275 276 277 278 279 |
# File 'lib/mongoid/persistence_context.rb', linha 271 def Limpar(objeto, cluster = nada, original_context = nada) se Contexto = obter(objeto) a menos que cluster.nada? || Contexto.cluster.igual?(cluster) Contexto.Cliente.Fechar a menos que Contexto.reusable_client? end end garantir store_context(objeto, original_context) end |
.get(objeto) ➤ Mongoid::PersistenceContext
Obtenha o contexto de persistência para uma classe específica ou instância de modelo.
258 259 260 |
# File 'lib/mongoid/persistence_context.rb', linha 258 def obter(objeto) get_context(objeto) end |
.set(object, options_or_context) ➤ Mongoid::PersistenceContext
Defina o contexto de persistência para uma classe ou instância de modelo específica.
Se já houver um conjunto de contextos de persistência, as opções no contexto existente serão combinadas com as opções fornecidas para a chamada do conjunto.
235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
# File 'lib/mongoid/persistence_context.rb', linha 235 def set(objeto, ) exists_context = get_context(objeto) = se exists_context exists_context. mais {} end se .is_a?(PersistenceContext) = . end = .mesclar() Contexto = PersistenceContext.Novo(objeto, ) store_context(objeto, Contexto) end |
Detalhes do método de instância
#==(outro) ➤ verdadeiro | false
Determine se esse contexto de persistência é igual a outro.
154 155 156 157 |
# File 'lib/mongoid/persistence_context.rb', linha 154 def ==(Outro) Método false a menos que Outro.is_a?(PersistenceContext) == Outro. end |
#cliente ➤ Mongo::Client
Obtenha o cliente para este contexto de persistência.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/mongoid/persistence_context.rb', linha 117 def Cliente @cliente ||= começar Cliente = Clientes.with_name(client_name) = se database_name_option Cliente = Cliente.Usar(nome do banco de dados) = .exceto(:database, 'database') end Cliente = Cliente.com() a menos que .vazio? Cliente end end |
#client_name ⇒ Symbol
Obtenha o nome do cliente para este contexto de persistência.
140 141 142 143 144 |
# File 'lib/mongoid/persistence_context.rb', linha 140 def client_name @client_name ||= __evaluate__([:cliente]) || Threaded.client_override || __evaluate__([:cliente]) end |
#collection(parent = nil) ➤ Mongo::Collection
Obtenha a coleção para este contexto de persistência.
81 82 83 84 85 |
# File 'lib/mongoid/persistence_context.rb', linha 81 def collection(principal = nada) principal ? principal.collection.com(.exceto(:database, "bancode dados")) : Cliente[collection_name.to_sym] end |
#collection_name ➤ string
Obtenha o nome da coleção para este contexto de persistência.
94 95 96 97 |
# File 'lib/mongoid/persistence_context.rb', linha 94 def collection_name @collection_name ||= (__evaluate__([:collection] || [:collection])) end |
#database_name ➤ string
Obtenha o nome do banco de dados para este contexto de persistência.
106 107 108 |
# File 'lib/mongoid/persistence_context.rb', linha 106 def nome do banco de dados __evaluate__(database_name_option) || Cliente.database.name end |
#for_child(documento) ➤ PersistenceContext
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna um novo contexto de persistência que é consistente com o documento secundário fornecido, herdando as configurações mais apropriadas.
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/mongoid/persistence_context.rb', linha 59 def for_child(documento) se documento.is_a?(classe) Método auto se documento == (@ objeto.is_a?(classe) ? @ objeto : @ objeto.classe) elsif documento.is_a?(Mongoid::Documento) Método auto se documento.classe == (@ objeto.is_a?(classe) ? @ objeto : @ objeto.classe) mais aumentar ArgumentError, 'deve especificar uma classe ou uma instância de documento' end PersistenceContext.Novo(documento, .mesclar(documento.)) end |
#ordered_storage_options ➤ Hash | nada
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
O subconjunto de opções fornecidas que podem ser usadas como opções de armazenamento.
181 182 183 184 |
# File 'lib/mongoid/persistence_context.rb', linha 181 def fatia = @opções.fatia(*Mongoid::Clientes::Validadores::Armazenamento::VALID_OPTIONS) fatia.algum? ? fatia : nada end |
#reusable_client? ➤ verdadeiro | false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Se o cliente do contexto pode ser reutilizado posteriormente e, portanto, não deve ser fechado.
Se o contexto de persistência for solicitado apenas com a opção : cliente , isso significa que o contexto deve usar um cliente configurado em mongoid.yml. Esses clientes não devem ser fechados quando o contexto for limpo, pois serão reutilizados posteriormente.
170 171 172 |
# File 'lib/mongoid/persistence_context.rb', linha 170 def reusable_client? @opções.keys == [:cliente] end |