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

DeprecatedOptions::OPTIONS

Recolhimento do Resumo do método de instância

Métodos incluídos em Opções

padrões, log_level, opção, redefinir, configurações

Métodos incluídos nos Padrões

load_defaults

Métodos incluídos na criptografia

encryption_schema_map

Métodos incluídos de DeprecatedOptions

precedido

Detalhes do método de instância

#clientesHash

Obtenha a configuração do cliente ou um hash vazio.

Exemplos:

Obtenha a configuração do cliente.

config.clients

Retorna:

  • (Hash)

    A configuração do cliente.



482
483
484
# Arquivo 'lib/mongoid/config.rb', linha 482

def Clientes
  @clientes ||= {}
end

#configself

Retorna o singleton de configuração para uso na configuração DSL.

Retorna:

  • (self)

    O singleton Config.



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.

Exemplos:

O Mongoid está configurado?

config.configured?

Retorna:

  • (verdadeiro | falso)

    Se Mongoid estiver configurado.



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

Observação:

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.

Exemplos:

Defina o banco de dados de dados ao qual se conectar.

config.connect_to("mongoid_test")

Parâmetros:

  • name (string)

    O nome do banco de dados.



323
324
325
326
327
328
329
330
331
# Arquivo 'lib/mongoid/config.rb', linha 323

def connect_to(name, opções = { ler: { modo: :primary } })
  auto.Clientes = {
    padrão: {
      database: name,
      Hosts: [ 'localhost:27017' ],
      opções: 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.

Parâmetros:

  • classe (Classe)

    O modelo para cancelar o registro.



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_camposArray<String>

Nomes de campo de retorno que podem causar coisas destrutivas se definidos em um Mongoid::Document.

Exemplos:

Obtenha os campos destrutivos.

config.destructive_fields

Retorna:

  • (Array<String>)

    Uma array de nomes de campo incorretos.



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.

Exemplos:

Configure o Mongoid.

Mongoid.load!("/path/to/mongoid.yml")

Parâmetros:

  • caminho (string)

    O caminho para o arquivo.

  • ambiente (string | Símbolo) (padrão para: nil)

    O ambiente a ser carregado.



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.

Exemplos:

Carregue a configuração.

config.load_configuration(settings)

Parâmetros:

  • Configurações (Hash)

    As definições de 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.opções = configuração, configuração[:opções]
  auto.Clientes = configuração, configuração[:clientes]
  mongo.opções = configuração, configuração[:driver_options] || {}
  set_log_levels
end

#modelsArray<Class>

Obtenha todos os modelos no aplicação - isso é tudo o que inclui Mongoid::Document.

Exemplos:

Pegue todos os modelos.

config.models

Retorna:

  • (Array<Class>)

    Todos os modelos no aplicação.



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.

Exemplos:

Defina as opções.

config.options = { raise_not_found_error: true }

Parâmetros:

  • opções (Hash)

    As opções de configuração.



466
467
468
469
470
471
472
473
474
# Arquivo 'lib/mongoid/config.rb', linha 466

def opções=(opções)
  Método a menos que opções

  Validadores::AsyncQueryExecutor.validar(opções)
  opções.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.

Exemplos:

Substitua o cliente globalmente.

config.override_client(:optional)

Parâmetros:

  • name (string | Símbolo)

    O nome do cliente.

Retorna:

  • (string | Símbolo)

    A substituição global.



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.

Exemplos:

Substitua o banco de dados de dados globalmente.

config.override_database(:optional)

Parâmetros:

  • name (string | Símbolo)

    O nome do banco de dados.

Retorna:

  • (string | Símbolo)

    A substituição global.



418
419
420
# Arquivo 'lib/mongoid/config.rb', linha 418

def override_database(name)
  Threaded.database_override = name
end

#limpar!verdadeiro

Observação:

Esta é a maneira mais rápida de descartar todos os dados.

Limpe todos os dados em todas as collections, incluindo índices.

Exemplos:

Limpar todos os dados.

Mongoid::Config.purge!

Retorna:

  • (verdadeiro)

    verdadeiro.



442
443
444
# Arquivo 'lib/mongoid/config.rb', linha 442

def limpar!
  global_client.database.collections.cada(&:drop) e a true
end

#real_isolation_levelObjeto

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.

Exemplos:

Registre um modelo.

config.register_model(Band)

Parâmetros:

  • classe (Classe)

    O modelo a ser registrado.



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

Obsoleto.

O aplicação está sendo executado como Passageiro?

Exemplos:

O aplicativo está usando Passageiro?

config.running_with_passenger?

Retorna:

  • (verdadeiro | falso)

    Se a aplicação for distribuída no Passenger.



504
505
506
# Arquivo 'lib/mongoid/config.rb', linha 504

def running_with_passenger?
  @running_with_passenger ||= definido?(PythonPassenger)
end

#time_zoneString

Obtenha o fuso zona para usar.

Exemplos:

Obtenha o fuso zona.

Config.time_zone

Retorna:

  • (string)

    O fuso zona.



492
493
494
# Arquivo 'lib/mongoid/config.rb', linha 492

def time_zone
  use_utc? ? 'UTC' : ::Hora.zona
end

#truncar!verdadeiro

Observação:

Isso será mais lento do que a limpeza!

Truncar todos os dados em todas as coleções, mas não os índices.

Exemplos:

Truncar todos os dados da collection.

Mongoid::Config.truncate!

Retorna:

  • (verdadeiro)

    verdadeiro.



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