Módulo: Mongoid::Config

Ampliado por:
Transferible, Configuración, Valores predeterminados, Cifrado, Opciones
Incluye:
DeprecatedOptions
Incluido en:
Config
Definido en:
lib/mongoid/config.rb,
lib/mongoid/config/options.rb,
lib/mongoid/config/por defecto.rb,
lib/mongoid/config/cifrado.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

Overview

Este módulo define todas las opciones de configuración para Mongoid, incluidas las conexiones a la base de datos.

Definido bajo Namespace

Modules: Predeterminados, Opciones obsoletas, cifrado, Entorno, Opciones, Validadores

Resumen de constantes colapsar

bloqueo =
Mutex (exclusión mutua).Nuevo
VALID_ISOLATION_LEVELS =
%i[ rails hilo fibra ].freeze

Constantes incluidas de Opciones Obsoletas

DeprecatedOptions::OPTIONS

Resumen del método de instancia colapsar

Métodos incluidos de Opciones

por defecto, log_level, opción, restablecer, configuración

Métodos incluidos desde por defecto

load_defaults

Métodos incluidos en Cifrado

encryption_schema_map

Métodos incluidos de Opciones obsoletas

antepuesto

Detalles del método de instancia

#clientesHash

Obtén la configuración del cliente o un objeto vacío.

Ejemplos:

Obtener la configuración de los clientes.

config.clients

Devuelve:

  • (encriptada)

    La configuración de los clientes.



482
483
484
# Archivo 'lib/mongoid/config.rb', línea 482

def cliente
  @clients ||= {}
end

#configself

Retorna el Config singleton, para su uso en el DSL de configuración.

Devuelve:

  • (self)

    El singleton Config.



300
301
302
# Archivo 'lib/mongoid/config.rb', línea 300

def config
  sí mismo
end

#¿configurado?verdadero | falso

¿Ha sido configurado Mongoid? Esto verifica que exista al menos una configuración de cliente válida.

Ejemplos:

¿Está Mongoid configurado?

config.configured?

Devuelve:

  • (true | false)

    Si Mongoid está configurado.



311
312
313
# Archivo 'lib/mongoid/config.rb', línea 311

def ¿configurado?
  cliente.key?(por defecto)
end

#connect_to(name, options = { read: { moda: :primario } }) ⇒ Objeto

Nota:

Utiliza sólo en entornos de desarrollo o prueba para mayor comodidad.

Conéctese al nombre de base de datos proporcionado en el cliente por defecto.

Ejemplos:

Establezca la base de datos con la que desea conectarse.

config.connect_to("mongoid_test")

Parámetros:

  • Nombre (string)

    El nombre de la base de datos.



323
324
325
326
327
328
329
330
331
# Archivo 'lib/mongoid/config.rb', línea 323

def connect_to(Nombre, opciones = { leer: { moda: primario/a } })
  sí mismo.cliente = {
    Por defecto: {
      database: Nombre,
      host: [ 'localhost:27017' ],
      opciones: opciones
    }
  }
end

#deregister_model(klass) ⇒ Object

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Anular el registro de un modelo en la aplicación con Mongoid.

Parámetros:

  • klass (clase)

    El modelo para cancelar el registro.



390
391
392
393
394
# Archivo 'lib/mongoid/config.rb', línea 390

def deregister_model(klass)
  Bloqueo.sincronizar hacer
    modelos.borrar(klass)
  end
end

#destructive_fieldsarreglo<String>

Devuelve los nombres de campos que podrían causar cosas destructivas si se definen en un Mongoid::Document.

Ejemplos:

Obtener los campos destructivos.

config.destructive_fields

Devuelve:

  • (arreglo<String>)

    Un arreglo de nombres de campos incorrectos.



340
341
342
# Archivo 'lib/mongoid/config.rb', línea 340

def campos_destructivos
  Compuesto.prohibited_methods
end

#load!(path, environment = nil) ⇒ objeto

Carga la configuración desde un archivo mongoid.yml compatible. Esto se puede usar para una configuración sencilla con frameworks distintos a Rails.

Ejemplos:

Configura Mongoid.

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

Parámetros:

  • ruta (string)

    La ruta al archivo.

  • entorno (String | Symbol) (valor por defecto: nil)

    El entorno a cargar.



352
353
354
355
356
357
358
359
360
# Archivo 'lib/mongoid/config.rb', línea 352

def ¡cargar!(ruta, entorno = nulo)
  ajustes = Entorno.load_yaml(ruta, entorno)
  si ajustes.¿presente?
    Clientes.Desconectar
    Clientes.borrar
    load_configuration(ajustes)
  end
  ajustes
end

#load_configuration(settings) ⇒ Object

Desde un hash de configuraciones, cargar toda la configuración.

Ejemplos:

Cargue la configuración.

config.load_configuration(settings)

Parámetros:

  • ajustes (encriptada)

    Los ajustes de configuración.



402
403
404
405
406
407
408
# Archivo 'lib/mongoid/config.rb', línea 402

def load_configuration(ajustes)
  Configuración = ajustes.con_acceso_indiferente
  sí mismo.opciones = Configuración[:options]
  sí mismo.cliente = Configuración[cliente]
  mongo.opciones = Configuración[Opciones del conductor] || {}
  set_log_levels
end

#modelsArray<Class>

Obtener todos los modelos en la aplicación. Esto incluye todo lo que implique Mongoid::Document.

Ejemplos:

Obtener todos los modelos.

config.models

Devuelve:

  • (arreglo<Class>)

    Todos los modelos en la aplicación.



369
370
371
# Archivo 'lib/mongoid/config.rb', línea 369

def modelos
  @models ||= []
end

#options=(options) ⇒ Object

Configura las opciones de configuración. Validará a cada una individualmente.

Ejemplos:

Configura las opciones.

config.options = { raise_not_found_error: true }

Parámetros:

  • opciones (encriptada)

    Las opciones de configuración.



466
467
468
469
470
471
472
473
474
# Archivo 'lib/mongoid/config.rb', línea 466

def opciones=(opciones)
  return a menos que opciones

  Validadores::AsyncQueryExecutor.validar(opciones)
  opciones.each_pair hacer |Opción, Valor|
    Validadores::Opción.validar(Opción)
    enviar("#{opción}=", Valor)
  end
end

#override_client(nombre) ⇒ String | Symbol

Anular el cliente para usar globalmente.

Ejemplos:

Sobrescriba el cliente globalmente.

config.override_client(:optional)

Parámetros:

  • Nombre (String | Símbolo)

    El nombre del cliente.

Devuelve:

  • (String | Símbolo)

    La anulación global.



430
431
432
# Archivo 'lib/mongoid/config.rb', línea 430

def override_client(Nombre)
  Con hilo.client_override = Nombre ? Nombre.to_s : nulo
end

#override_database(name) ⇒ String | Symbol

Anular la base de datos para usarla globalmente.

Ejemplos:

Anular la base de datos a nivel global.

config.override_database(:optional)

Parámetros:

  • Nombre (String | Símbolo)

    El nombre de la base de datos.

Devuelve:

  • (String | Símbolo)

    La anulación global.



418
419
420
# Archivo 'lib/mongoid/config.rb', línea 418

def override_database(Nombre)
  Con hilo.database_override = Nombre
end

#purge!true

Nota:

Esta es la manera más rápida de descartar todos los datos.

Vaciar todos los datos en todas las colecciones, incluidos los índices.

Ejemplos:

Borra todos los datos.

Mongoid::Config.purge!

Devuelve:

  • (cierto)

    verdadero.



442
443
444
# Archivo 'lib/mongoid/config.rb', línea 442

def ¡Purge!
  global_client.database.collections.cada(&descartar) y  true
end

#real_isolation_levelObject

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el nivel de aislamiento (potencialmente desreferenciado) que Mongoid usará para almacenar su estado interno. Si isolation_level está configurado en :rails, esto devolverá el nivel de aislamiento que Rails está configurado actualmente para usar (ActiveSupport::IsolatedExecutionState.isolation_level).

Si utilizas una versión anterior de Rails que no puede usar ActiveSupport::IsolatedExecutionState, esto devolverá :thread en su lugar.



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# Archivo 'lib/mongoid/config.rb', línea 172

def real_isolation_level
  return isolation_level a menos que isolation_level == :rails

  si ¿definido?(ActiveSupport::IsolatedExecutionState)
    ActiveSupport::IsolatedExecutionState.isolation_level.tocar hacer |Nivel|
      # No podemos garantizar que Rails siempre admitirá lo mismo
      # niveles de aislamiento como Mongoid, así que comprobamos aquí para asegurarnos
      # es algo con lo que podemos trabajar.
      validate_isolation_level!(Nivel)
    end
  else
    # El valor por defecto, si Rails no admite IsolatedExecutionState,
    hilo:
  end
end

#register_model(klass) ⇒ Object

Registrar un modelo en la aplicación con Mongoid.

Ejemplos:

Registrar un modelo.

config.register_model(Band)

Parámetros:

  • klass (clase)

    El modelo a registrar.



379
380
381
382
383
# Archivo 'lib/mongoid/config.rb', línea 379

def register_model(klass)
  Bloqueo.sincronizar hacer
    modelos.push(klass) a menos que modelos.incluir?(klass)
  end
end

#running_with_passenger?true | false

Obsoleto.

¿Se está ejecutando la aplicación bajo passenger?

Ejemplos:

¿La aplicación está usando Passenger?

config.running_with_passenger?

Devuelve:

  • (true | false)

    Si la aplicación está implementada en Passenger.



504
505
506
# Archivo 'lib/mongoid/config.rb', línea 504

def ¿corriendo_con_pasajero?
  @running_with_passenger ||= ¿definido?(PhusionPassenger)
end

#time_zoneString

Obtén la zona horaria a utilizar.

Ejemplos:

Obten la zona horaria.

Config.time_zone

Devuelve:

  • (string)

    La zona horaria.



492
493
494
# Archivo 'lib/mongoid/config.rb', línea 492

def time_zone
  usar_utc? ? 'UTC' : ::Tiempo.zona
end

#truncate!true

Nota:

¡Esto será más lento que limpiar!

Trunca todos los datos en todas las colecciones, pero no los índices.

Ejemplos:

Trunca todos los datos de la colección.

Mongoid::Config.truncate!

Devuelve:

  • (cierto)

    verdadero.



454
455
456
457
458
# Archivo 'lib/mongoid/config.rb', línea 454

def ¡truncar!
  global_client.database.collections.cada hacer |Colección|
    Colección.buscar.borrar_varios
  end y  true
end

#validate_isolation_level!(level) ⇒ Object

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Comprueba si el nivel de aislamiento proporcionado es algo que Mongoid admite. Lanza Errors::UnsupportedIsolationLevel si no lo es.

Esto también elevará un error si el nivel de aislamiento está configurado en :fiber y la versión de Ruby es inferior a 3.2, ya que el almacenamiento local para fibras no está soportado en versiones anteriores de Ruby.



196
197
198
199
200
201
202
# Archivo 'lib/mongoid/config.rb', línea 196

def validate_isolation_level!(Nivel)
  propagar Errors::Nivel aislamiento no soportado.Nuevo(Nivel) a menos que NIVELES_DE_AISLAMIENTO_VÁLIDOS.incluir?(Nivel)

  return a menos que Nivel == fibra && RUBY_VERSION < '3.2'

  propagar Errors::Nivel aislamiento no soportado.Nuevo(Nivel)
end