Módulo: Mongoid::Scopable::ClassMethods
- Definido en:
- lib/mongoid/scopable.rb
Colapso del resumen del método de instancia
-
#¿Default_scopable? ⇒ verdadero | falso
¿Es posible que la clase tenga aplicado el ámbito predeterminado?
-
#default_scope(value = nil) ⇒ Proc
Añade un alcance predeterminado al modelo.
-
#queryable ⇒ Criteria
privada
Obtenga un objeto consultable, ya sea el último en la pila de alcance o uno nuevo.
-
#alcance(nombre, valor y bloque) ⇒ Objeto
Cree un ámbito al que se pueda acceder desde el nivel de clase o encadenarlo a criterios mediante el nombre proporcionado.
-
# alcance (opciones = nulo) ⇒Criterios
Obtenga un criterio para el documento con alcance normal.
-
#ámbitos ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en clases antecesoras.
-
#sin alcance ⇒ Criterio | Objeto
Obtenga los criterios sin aplicar ningún alcance.
-
#with_default_scope ⇒ Criterios (también: #criteria)
Obtenga un criterio con el alcance predeterminado aplicado, si es posible.
-
#with_scope(criterios) ⇒ Criterios
Inserta los criterios proporcionados en la pila de alcance y los elimina después de que se obtiene el bloque proporcionado.
-
#sin_alcance_predeterminado ⇒ Objeto
Ejecuta el bloque sin aplicar el alcance predeterminado.
Detalles del método de instancia
#¿Default_scopable? ⇒ verdadero | falso
¿Es posible que la clase tenga aplicado el ámbito predeterminado?
95 96 97 |
# Archivo 'lib/mongoid/scopable.rb', línea 95 def ¿Se puede copiar por defecto? ¿alcance predeterminado? && !Compacto.¿sin_alcance_predeterminado?(yo) end |
#default_scope(value = nil) ⇒ Proc
Añade un alcance predeterminado al modelo. Este alcance se aplicará a todos los criterios, a menos que se especifique #unscoped.
83 84 85 86 87 |
# Archivo 'lib/mongoid/scopable.rb', línea 83 def default_scope(valor = nulo) valor = Proc.Nuevo { rendimiento } Si ¿bloque_dado? comprobar_la_validez_del_alcance(valor) yo.alcance predeterminado = alcance_predeterminado_del_proceso(valor) end |
#queryable ⇒ Criteria
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtenga un objeto consultable, ya sea el último en la pila de alcance o uno nuevo.
107 108 109 110 111 |
# Archivo 'lib/mongoid/scopable.rb', línea 107 def consultable crit = Compacto.alcance actual(yo) || Criterios.Nuevo(yo) crit. = true Si (crit.klass. && !crit.klass.¿cíclico?) crit end |
#alcance(nombre, valor y bloque) ⇒ Objeto
Cree un ámbito al que se pueda acceder desde el nivel de clase o encadenarlo a criterios mediante el nombre proporcionado.
132 133 134 135 136 137 138 139 140 141 |
# Archivo 'lib/mongoid/scopable.rb', línea 132 def ámbito de aplicación(Nombre, valor, Ybloque) normalizado = Nombre.a_sym comprobar_la_validez_del_alcance(valor) nombre_del_ámbito_de_comprobación(normalizado) _ámbitos_declarados[normalizado] = { alcance: valor, extensión: Module.Nuevo(Ybloque) } método de definición de alcance(normalizado) end |
# alcance(opciones = nulo) ⇒ Criterios
Esto forzará que se aplique el alcance predeterminado.
Obtenga un criterio para el documento con alcance normal.
158 159 160 |
# Archivo 'lib/mongoid/scopable.rb', línea 158 def con alcance( = nulo) consultable.con alcance() end |
#ámbitos ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en clases antecesoras.
51 52 53 54 55 56 57 58 59 |
# Archivo 'lib/mongoid/scopable.rb', línea 51 def ámbitos ámbitos definidos = {} antepasados.marcha atrás.cada hacer |klass| Si klass.respond_to?(:_ámbitos_declarados) ámbitos definidos.¡unir!(klass._ámbitos_declarados) end end ámbitos definidos.freeze end |
#sin ámbito ⇒ Criterios | Objeto
Esto obligará a que el ámbito por defecto, así como cualquier ámbito aplicado mediante ".with_scope", se elimine.
Obtenga los criterios sin aplicar ningún alcance.
177 178 179 180 181 182 183 184 185 186 187 |
# Archivo 'lib/mongoid/scopable.rb', línea 177 def sin alcance Si ¿bloque_dado? sin alcance predeterminado hacer con_alcance(nulo) hacer rendimiento(yo) end end else consultable.sin alcance end end |
#with_default_scope ⇒ Criterios También conocido como: criterios
Obtenga un criterio con el alcance predeterminado aplicado, si es posible.
195 196 197 |
# Archivo 'lib/mongoid/scopable.rb', línea 195 def con alcance predeterminado consultable.con alcance predeterminado end |
#with_scope(criterios) ⇒ Criterios
Inserta los criterios proporcionados en la pila de alcance y los elimina después de que se obtiene el bloque proporcionado.
209 210 211 212 213 214 215 216 217 |
# Archivo 'lib/mongoid/scopable.rb', línea 209 def con_alcance(criterios) anterior = Compacto.alcance actual(yo) Compacto.establecer_alcance_actual(criterios, yo) begin rendimiento criterios asegurar Compacto.establecer_alcance_actual(anterior, yo) end end |
#sin_alcance_predeterminado ⇒ Objeto
Ejecuta el bloque sin aplicar el alcance predeterminado.
227 228 229 230 231 232 |
# Archivo 'lib/mongoid/scopable.rb', línea 227 def sin alcance predeterminado Compacto.comenzar_sin_alcance_predeterminado(yo) rendimiento asegurar Compacto.salida_sin_alcance_predeterminado(yo) end |