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 ].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.
45 46 47 48 |
# File 'lib/mongoid/persistence_context.rb', linha 45 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.
267 268 269 270 271 272 273 274 275 |
# File 'lib/mongoid/persistence_context.rb', linha 267 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.
254 255 256 |
# File 'lib/mongoid/persistence_context.rb', linha 254 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.
231 232 233 234 235 236 237 238 239 240 241 242 243 244 |
# File 'lib/mongoid/persistence_context.rb', linha 231 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.
150 151 152 153 |
# File 'lib/mongoid/persistence_context.rb', linha 150 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.
116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/mongoid/persistence_context.rb', linha 116 def Cliente @cliente ||= começar Cliente = Clientes.with_name(client_name) se database_name_option Cliente = Cliente.Usar(nome do banco de dados) end a menos que .vazio? Cliente = Cliente.com() end Cliente end end |
#client_name ⇒ Symbol
Obtenha o nome do cliente para este contexto de persistência.
136 137 138 139 140 |
# File 'lib/mongoid/persistence_context.rb', linha 136 def client_name @client_name ||= [:cliente] || Threaded.client_override || __evaluate__([:cliente]) end |
#collection(parent = nil) ➤ Mongo::Collection
Obtenha a coleção para este contexto de persistência.
80 81 82 83 84 |
# File 'lib/mongoid/persistence_context.rb', linha 80 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.
93 94 95 96 |
# File 'lib/mongoid/persistence_context.rb', linha 93 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.
105 106 107 |
# File 'lib/mongoid/persistence_context.rb', linha 105 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.
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/mongoid/persistence_context.rb', linha 58 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.
177 178 179 180 |
# File 'lib/mongoid/persistence_context.rb', linha 177 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.
166 167 168 |
# File 'lib/mongoid/persistence_context.rb', linha 166 def reusable_client? @opções.keys == [:cliente] end |