Módulo: Mongoid::Criteria::Scopable
- Incluído em:
- Mongoid::Criteria
- Definido em:
- lib/mongoid/criteria/scopable.rb
Visão geral
Módulo Mixin incluído no Mongoid::Criteria que adiciona funcionalidades relacionadas a escopos de query padrão e escopos nomeados.
Recolhimento do Resumo do método de instância
-
#apply_default_scope ➤ Critérios
Aplica o escopo padrão aos critérios.
-
#apply_scope(scope) ➤ Critérios
privado
Aplica um escopo aos critérios atuais.
-
#remove_scoping( other ) ➤ Critérios
Dado outros critérios, remova o escopo dos outros critérios desses critérios.
-
#scoped(options = nil) ➤ Critérios
Força os critérios a serem analisados, a menos que esteja dentro de um bloco sem escopo.
-
#escopo? ➤ verdadeiro | false
Os critérios tiveram o escopo padrão aplicado?
-
#scoping_options ➤ Array
Obtenha as opções de escopo dos critérios, como um par (com escopo, sem escopo).
-
#scoping_options=(opções) ➤ Array
Defina as opções de escopo dos critérios, como um par (com escopo, sem escopo).
-
#sem escopo ➤ Critérios
Limpa todo o escopo dos critérios.
-
#sem escopo? ➤ verdadeiro | false
Os critérios não têm escopo?
-
#with_default_scope ➤ Critérios
Obtenha os critérios com o escopo padrão aplicado, se o escopo padrão puder ser aplicado.
Detalhes do método de instância
#apply_default_scope ➤ Critérios
Aplica o escopo padrão aos critérios.
15 16 17 18 19 20 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 15 def apply_default_scope classe.sem_default_scope fazer mesclar!(classe.default_scoping.Chame) end auto. = true, false end |
#apply_scope(scope) ➤ Critérios
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.
Aplica um escopo aos critérios atuais.
Este método não modifica o receptor, mas pode retornar um novo objeto ou o receptor, dependendo do argumento: se o argumento scope for nulo, o receptor será retornado sem modificação, caso contrário, um novo objeto de critérios será retornado.
34 35 36 37 38 39 40 41 42 43 44 45 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 34 def apply_scope(escopo) caso escopo quando Proc instance_exec(&escopo) quando Símbolo enviar(escopo) quando critério mesclar(escopo) mais auto end end |
#remove_scoping( other ) ➤ Critérios
Dado outros critérios, remova o escopo dos outros critérios desses critérios.
56 57 58 59 60 61 62 63 64 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 56 def remove_scope(Outro) se Outro rejeitar_matching(Outro, :selector, :opções) Outro.inclusões.cada fazer || inclusões.delete_one() end end auto end |
#scoped(options = nil) ➤ Critérios
Força os critérios a serem analisados, a menos que esteja dentro de um bloco sem escopo.
74 75 76 77 78 79 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 74 def com escopo( = nada) crit = clonar crit..mesclar!( || {}) crit.apply_default_scope se classe.default_scopeble? && !escopo? crit end |
#escopo? ➤ verdadeiro | false
Os critérios tiveram o escopo padrão aplicado?
87 88 89 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 87 def escopo? !!(definido?(@scoped) ? @scoped : nada) end |
#scoping_options ➤ Array
Obtenha as opções de escopo dos critérios, como um par (com escopo, sem escopo).
123 124 125 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 123 def [ (definido?(@scoped) ? @scoped : nada), (definido?(@unscoped) ? @unscoped : nada) ] end |
#scoping_options=(opções) ➤ Array
Defina as opções de escopo dos critérios, como um par (com escopo, sem escopo).
135 136 137 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 135 def () @scoped, @unscoped = end |
#sem escopo ➤ Critérios
Limpa todo o escopo dos critérios.
97 98 99 100 101 102 103 104 105 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 97 def sem escopo crit = clonar a menos que sem escopo? crit. = false, true crit.seletor.Limpar crit..Limpar end crit end |
#sem escopo? ➤ verdadeiro | false
Os critérios não têm escopo?
113 114 115 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 113 def sem escopo? !!(definido?(@unscoped) ? @unscoped : nada) end |
#with_default_scope ➤ Critérios
Obtenha os critérios com o escopo padrão aplicado, se o escopo padrão puder ser aplicado. Casos em que não pode ocorrer: se estivermos em um bloco sem escopo, se o critério já tiver sido forçado sem escopo ou se o escopo padrão já tiver sido aplicado.
148 149 150 151 152 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 148 def with_default_scope crit = clonar crit.apply_default_scope se classe.default_scopeble? && !sem escopo? && !escopo? crit end |