Módulo: Mongoid::Scopable::ClassMethods
- Definido en:
- lib/mongoid/scopable.rb
Resumen del método de instancia colapsar
-
#¿Default_scopable? ⇒ verdadero | falso
¿Se puede aplicar el alcance por defecto a la clase?
-
#default_scope(value = nil) ⇒ Proc
Añadir un ámbito por defecto al modelo.
-
#queryable ⇒ Criteria
privado
Obtenga un objeto consultable, ya sea el último en la pila de alcance o uno nuevo.
-
#scope(name, value, &block) ⇒ Object
Cree un ámbito al que se pueda acceder desde el nivel de clase o encadenarlo a criterios mediante el nombre proporcionado.
-
#scoped(options = nil) ⇒ Criterio
Obtener un criterio para el documento con alcance normal.
-
#scopes ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en las clases antecesoras.
-
#sin alcance ⇒ Criterio | Objeto
Obtener los criterios sin tener en cuenta ningún alcance.
-
#con_default_scope ⇒ Criterios (también: #criteria)
Obtener un criterio con el alcance por defecto 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.
-
#without_default_scope ⇒ Object
Execute el bloque sin aplicar el scope por defecto.
Detalles del método de instancia
#¿Default_scopable? ⇒ verdadero | falso
¿Puede la clase tener aplicado el ámbito por defecto?
95 96 97 |
# Archivo 'lib/mongoid/scopable.rb', línea 95 def ¿Se puede copiar por defecto? default_scoping? && !Compacto.sin_ámbito_predeterminado?(sí mismo) 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 ¿block_given? comprobar:validez_del_ámbito(Valor) sí mismo.alcance predeterminado = process_default_scope(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.current_scope(sí mismo) || Criterios.Nuevo(sí mismo) 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 Alcance(Nombre, Valor, Ybloque) normalizado = Nombre.to_sym comprobar:validez_del_ámbito(Valor) check_scope_name(normalizado) _declared_scopes[normalizado] = { alcance: Valor, extensión: Module.Nuevo(Ybloque) } define_scope_method(normalizado) end |
#con alcance(opciones = nulo) ⇒ Criterios
Esto obligará a que se aplique el ámbito por defecto.
Obtener un criterio para el documento con alcance normal.
158 159 160 |
# Archivo 'lib/mongoid/scopable.rb', línea 158 def delimitado( = nulo) consultable.delimitado() end |
#ámbitos ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en las clases antecesoras.
51 52 53 54 55 56 57 58 59 |
# Archivo 'lib/mongoid/scopable.rb', línea 51 def alcances ámbitos definidos = {} antepasados.reversa.cada hacer |klass| si klass.respond_to?(:_ámbitos_declarados) ámbitos definidos.¡unir!(klass._declared_scopes) 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.
Obtener los criterios sin tener en cuenta 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 ¿block_given? sin_ámbito_predeterminado hacer with_scope(nulo) hacer rendimiento(sí mismo) end end else consultable.sin alcance end end |
#with_default_scope ⇒ Criterios También conocido como: criterios
Obtener un criterio con el alcance por defecto aplicado, si es posible.
195 196 197 |
# Archivo 'lib/mongoid/scopable.rb', línea 195 def con_ámbito_predeterminado consultable.con_ámbito_predeterminado end |
#with_scope(criteria) ⇒ 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 with_scope(criterios) anterior = Compacto.current_scope(sí mismo) Compacto.set_current_scope(criterios, sí mismo) begin rendimiento criterios asegurar Compacto.set_current_scope(anterior, sí mismo) end end |
#without_default_scope ⇒ Object
Execute el bloque sin aplicar el scope por defecto.
227 228 229 230 231 232 |
# Archivo 'lib/mongoid/scopable.rb', línea 227 def sin_ámbito_predeterminado Compacto.comenzar_sin_alcance_predeterminado(sí mismo) rendimiento asegurar Compacto.salida_sin_alcance_predeterminado(sí mismo) end |