Módulo: Mongoid::Config
- Estendido por:
- Encaminhável, Config, Padrões, Criptografia, Opções
- Inclui:
- DeprecatedOptions
- Incluído em:
- Config
- Definido em:
- lib/mongoid/config.rb,
lib/mongoid/config/options.rb,
lib/mongoid/config/defaults.rb,
lib/mongoid/config/encryption.rb,
lib/mongoid/config/environment.rb,
lib/mongoid/config/validators/ cliente.rb,
lib/mongoid/config/validators/option.rb,
lib/mongoid/config/validators/async_query_executor.rb
Visão geral
Este módulo define todas as opções de configuração do Mongoid, incluindo as conexões do banco de dados de dados.
Definido sob namespace
Módulos: Padrões, DeprecatedOptions, Criptografia, Ambiente, Opções, Validadores
Colapsode resumo constante
- BLOQUEAR =
Mutex.Novo
- VALID_ISOLATION_LEVELS =
%i[ carris tópico Fibra ].congelar
Constantes incluídas de DeprecatedOptions
Recolhimento do Resumo do método de instância
-
#clientes ➤ Hash
Obtenha a configuração do cliente ou um hash vazio.
-
#config ⇒ self
Retorna o singleton de configuração para uso na configuração DSL.
-
#configurado? ➤ verdadeiro | false
O Mongoid foi configurado? Isso está verificando se existe pelo menos uma configuração de cliente válida.
-
#connect_to(name, options = { read: { modo: :primário } }) ➤ objeto
Conecte-se ao nome do banco de dados de dados fornecido no cliente padrão.
-
#deregister_model(klass) ⇒ Object
privado
Cancele o registro de um modelo no aplicação com Mongoid.
-
#destrutivo_campos ➤ Array<String>
Nomes de campo de retorno que podem causar coisas destrutivas se definidos em um Mongoid::Document.
-
#load!(caminhos, ambiente = nil) ➤ Objeto
Carregue as configurações de um arquivo mongoid.yml compatível.
-
#load_configuration(settings) ➤ Objeto
A partir de um hash de configurações, carregue toda a configuração.
-
#models ⇒ Array<Class>
Obtenha todos os modelos no aplicação - isso é tudo o que inclui Mongoid::Document.
-
#options=(opções) ➤ Objeto
Definir as opções de configuração.
-
#override_client(name) ➤ string | Símbolo
Substitua o cliente para usar globalmente.
-
#override_database(name) ➤ string | Símbolo
Substitua o banco de dados de dados para usar globalmente.
-
#limpar! ➤ verdadeiro
Limpe todos os dados em todas as collections, incluindo índices.
-
#real_isolation_level ➤ Objeto
privado
Retorna o nível de isolamento (potencialmente desreferenciado) que o Mongoid usará para armazenar seu estado interno.
-
#registrar_model(klass) ➤ Objeto
Registre um modelo no aplicação com Mongoid.
- #running_with_passenger? ➤ verdadeiro | false obsoleto Obsoleto.
-
#time_zone ➤ string
Obtenha o fuso zona para usar.
-
#truncar! ➤ verdadeiro
Truncar todos os dados em todas as coleções, mas não os índices.
-
#validate_isolation_level!(nível) ➤ Objeto
privado
Verifica se o nível de isolamento fornecido é algo suportado pelo Mongoid.
Métodos incluídos em Opções
padrões, log_level, opção, redefinir, configurações
Métodos incluídos nos Padrões
Métodos incluídos na criptografia
Métodos incluídos de DeprecatedOptions
Detalhes do método de instância
#clientes ➤ Hash
Obtenha a configuração do cliente ou um hash vazio.
482 483 484 |
# Arquivo 'lib/mongoid/config.rb', linha 482 def Clientes @clientes ||= {} end |
#config ⇒ self
Retorna o singleton de configuração para uso na configuração DSL.
300 301 302 |
# Arquivo 'lib/mongoid/config.rb', linha 300 def config auto end |
#configurado? ➤ verdadeiro | false
O Mongoid foi configurado? Isso está verificando se existe pelo menos uma configuração de cliente válida.
311 312 313 |
# Arquivo 'lib/mongoid/config.rb', linha 311 def configurado? Clientes.chave?(:default) end |
#connect_to(name, options = { read: { modo: :primário } }) ⇒ objeto
Use somente em ambientes de desenvolvimento ou teste por conveniência.
Conecte-se ao nome do banco de dados de dados fornecido no cliente padrão.
323 324 325 326 327 328 329 330 331 |
# Arquivo 'lib/mongoid/config.rb', linha 323 def connect_to(name, = { ler: { modo: :primary } }) auto.Clientes = { padrão: { database: name, Hosts: [ 'localhost:27017' ], opções: } } end |
#deregister_model(klass) ➤ Objeto
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.
Cancele o registro de um modelo no aplicação com Mongoid.
390 391 392 393 394 |
# Arquivo 'lib/mongoid/config.rb', linha 390 def deregister_model(classe) Bloqueio.sincronizar fazer modelos.excluir(classe) end end |
#destrutivo_campos ➤ Array<String>
Nomes de campo de retorno que podem causar coisas destrutivas se definidos em um Mongoid::Document.
340 341 342 |
# Arquivo 'lib/mongoid/config.rb', linha 340 def destrutivos_campos Componível.returned_methods end |
#load!(caminhos, ambiente = nil) ➤ Objeto
Carregue as configurações de um arquivo mongoid.yml compatível. Isso pode ser usado para facilitar a configuração com outras estruturas além do Rails.
352 353 354 355 356 357 358 359 360 |
# Arquivo 'lib/mongoid/config.rb', linha 352 def carregue!(caminho, ambiente = nada) Configurações = ambiente.load_yaml(caminho, ambiente) se Configurações.presente? Clientes.Desconectar Clientes.Limpar load_configuration(Configurações) end Configurações end |
#load_configuration(settings) ➤ Objeto
A partir de um hash de configurações, carregue toda a configuração.
402 403 404 405 406 407 408 |
# Arquivo 'lib/mongoid/config.rb', linha 402 def load_configuration(Configurações) configuração, configuração = Configurações.with_indizer_access auto. = configuração, configuração[:opções] auto.Clientes = configuração, configuração[:clientes] mongo. = configuração, configuração[:driver_options] || {} set_log_levels end |
#models ⇒ Array<Class>
Obtenha todos os modelos no aplicação - isso é tudo o que inclui Mongoid::Document.
369 370 371 |
# Arquivo 'lib/mongoid/config.rb', linha 369 def modelos @models ||= [] end |
#options=(opções) ➤ Objeto
Definir as opções de configuração. Validará cada um individualmente.
466 467 468 469 470 471 472 473 474 |
# Arquivo 'lib/mongoid/config.rb', linha 466 def () Método a menos que Validadores::AsyncQueryExecutor.validar() .cada_pair fazer |opção, valor| Validadores::Opção.validar(opção) enviar("#{opção}=", valor) end end |
#override_client(name) ➤ string | Símbolo
Substitua o cliente para usar globalmente.
430 431 432 |
# Arquivo 'lib/mongoid/config.rb', linha 430 def override_client(name) Threaded.client_override = name ? name.to_s : nada end |
#override_database(name) ➤ string | Símbolo
Substitua o banco de dados de dados para usar globalmente.
418 419 420 |
# Arquivo 'lib/mongoid/config.rb', linha 418 def override_database(name) Threaded.database_override = name end |
#limpar! ➤ verdadeiro
Esta é a maneira mais rápida de descartar todos os dados.
Limpe todos os dados em todas as collections, incluindo índices.
442 443 444 |
# Arquivo 'lib/mongoid/config.rb', linha 442 def limpar! global_client.database.collections.cada(&:drop) e a true end |
#real_isolation_level ➤ Objeto
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 o nível de isolamento (potencialmente desreferenciado) que o Mongoid usará para armazenar seu estado interno. Se isolation_level estiver definido como :rails, isso retornará o nível de isolamento que o Rails está configurado atualmente para usar (ActiveSupport::IsolatedExecutionState.isolation_level).
Se estiver usando uma versão mais antiga do Rails que não é compatível com ActiveSupport::IsolatedExecutionState, isso retornará :thread.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# Arquivo 'lib/mongoid/config.rb', linha 172 def real_isolation_level Método isolamento_level a menos que isolamento_level == :rails se definido?(ActiveSupport::IsolatedExecutionState) ActiveSupport::IsolatedExecutionState.isolamento_level.toque fazer |level| # Não podemos garantir que o Rails sempre oferecerá o mesmo suporte # níveis de isolamento como Mongoide, então verificamos aqui para garantir # é algo com que podemos trabalhar. validate_isolation_level!(level) end mais # O padrão, se o Rails não suportar IsolatedExecutionState, :thread end end |
#register_model(klass) ⇒ Object
Registre um modelo no aplicação com Mongoid.
379 380 381 382 383 |
# Arquivo 'lib/mongoid/config.rb', linha 379 def registrar_model(classe) Bloqueio.sincronizar fazer modelos.push(classe) a menos que modelos.incluir?(classe) end end |
#running_with_passenger? ➤ verdadeiro | false
O aplicação está sendo executado como Passageiro?
504 505 506 |
# Arquivo 'lib/mongoid/config.rb', linha 504 def running_with_passenger? @running_with_passenger ||= definido?(PythonPassenger) end |
#time_zone ⇒ String
Obtenha o fuso zona para usar.
492 493 494 |
# Arquivo 'lib/mongoid/config.rb', linha 492 def time_zone use_utc? ? 'UTC' : ::Hora.zona end |
#truncar! ➤ verdadeiro
Isso será mais lento do que a limpeza!
Truncar todos os dados em todas as coleções, mas não os índices.
454 455 456 457 458 |
# Arquivo 'lib/mongoid/config.rb', linha 454 def truncar! global_client.database.collections.cada fazer |collection| collection.find.delete_many end e a true end |
#validate_isolation_level!(nível) ⇒ Objeto
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.
Verifica se o nível de isolamento fornecido é algo suportado pelo Mongoid. Gera erros::UnsupportedIsolationLevel se não for.
Isso também gerará um erro se o nível de isolamento estiver definido como :fiber e a versão Ruby for anterior a 3.2, uma vez que o armazenamento local de cabo não é suportado em versões anteriores do Ruby.
196 197 198 199 200 201 202 |
# Arquivo 'lib/mongoid/config.rb', linha 196 def validate_isolation_level!(level) aumentar Errors::UnsupportedIsolationLevel.Novo(level) a menos que VALID_ISOLATION_LEVELS.incluir?(level) Método a menos que level == :fiber && RBY_VERSION < '3.2' aumentar Errors::UnsupportedIsolationLevel.Novo(level) end |