Clase: Mongoid::Factory::Instantiator Privada

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/factory.rb

Overview

Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Una clase auxiliar para crear una instancia de un modelo usando su clase de tipo directamente o a través de una clase de tipo especificada mediante una clave discriminadora.

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(clase, atributos, criterios, campos_seleccionados) ⇒ Instanciador

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo Factory::Initiator.

Parámetros:

  • klass (Mongoid::Documento)

    La clase principal a la que se hace referencia al crear una instancia del modelo.

  • atributos (Hash | nulo ) —

    (Opcional) El hash de atributos a utilizar al crear una instancia del modelo.

  • criterios (Mongoide::Criterios | nulo ) —

    (Opcional) El objeto de criterios que se utilizará como fuente secundaria para los campos seleccionados; también se utiliza al establecer la asociación inversa.

  • campos seleccionados (Matriz | nulo ) —

    La lista de nombres de campos que deben incluirse explícitamente (y exclusivamente) en el nuevo registro.



46
47
48
49
50
51
52
53
# Archivo 'lib/mongoid/factory.rb', línea 46

def inicializar(klass, atributos, criterios, campos seleccionados)
  @klass = klass
  @atributos = atributos
  @criteria = criterios
  @selected_fields = campos seleccionados ||
                     (criterios && criterios.opciones[:campos])
  @tipo = atributos && atributos[klass.clave discriminadora]
end

Detalles de los atributos de instancia

#atributosHash | nulo (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve: el hash de los atributos a utilizar al instanciar el modelo.

Devuelve:

  • (Hash | nulo ) —

    El hash de atributos a utilizar al crear una instancia del modelo.



19
20
21
# Archivo 'lib/mongoid/factory.rb', línea 19

def atributos
  @atributos
end

# criterios ⇒ Mongoid::Criteria| nulo (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el objeto de criterios que se utilizará como fuente secundaria para los campos seleccionados; también se utiliza al establecer la asociación inversa.

Devuelve:

  • (Mongoide::Criterios | nulo ) —

    El objeto de criterios que se utilizará como fuente secundaria para los campos seleccionados; también se utiliza al establecer la asociación inversa.



24
25
26
# Archivo 'lib/mongoid/factory.rb', línea 24

def criterios
  @criteria
end

#klassMongoid::Document (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la clase de modelo principal a la que se hace referencia.

Devuelve:



15
16
17
# Archivo 'lib/mongoid/factory.rb', línea 15

def klass
  @klass
end

#selected_fieldsMatriz | nil (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la lista de nombres de campos que deben incluirse explícitamente (y exclusivamente) en el nuevo registro.

Devuelve:

  • (Matriz | nulo ) —

    La lista de nombres de campos que deben incluirse explícitamente (y exclusivamente) en el nuevo registro.



28
29
30
# Archivo 'lib/mongoid/factory.rb', línea 28

def campos seleccionados
  @selected_fields
end

#tipoCadena | nulo (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el identificador de la clase que debe cargarse e instanciarse, en el caso de una especificación de clase polimórfica.

Devuelve:

  • ( Cadena| nulo ) —

    El identificador de la clase que debe cargarse e instanciarse, en el caso de una especificación de clase polimórfica.



33
34
35
# Archivo 'lib/mongoid/factory.rb', línea 33

def tipo
  @tipo
end

Detalles del método de instancia

#instancia(ejecutar_devoluciones_de_llamadas: Threaded.execute_callbacks?) ⇒ Mongoid::Document

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Construye y devuelve una nueva instancia de la clase solicitada.

Parámetros:

  • ejecutar_devoluciones de llamadas (true | false) (predeterminado: Threaded.execute_callbacks?)

    Si las devoluciones de llamadas del documento deben invocarse o no con la nueva instancia.

Devuelve:

Aumentos:

  • (Errores::Modelodesconocido)

    cuando el tipo solicitado no existe, o si no responde al método 'instantiate'.



64
65
66
67
68
69
70
# Archivo 'lib/mongoid/factory.rb', línea 64

def instancia(ejecutar_devoluciones de llamada: Compacto.¿ejecutar_devoluciones de llamada?)
  Si tipo.blank?
    instanciar_sin_tipo(ejecutar_devoluciones de llamadas)
  else
    instanciar_con_tipo(ejecutar_devoluciones de llamadas)
  end
end