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.
18 19 20 21 22 23 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 18 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.
37 38 39 40 41 42 43 44 45 46 47 48 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 37 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.
59 60 61 62 63 64 65 66 67 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 59 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.
77 78 79 80 81 82 83 84 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 77 def com escopo( = nada) crit = clonar crit..mesclar!( || {}) se classe.default_scopeble? && !escopo? crit.apply_default_scope end crit end |
#escopo? ➤ verdadeiro | false
Os critérios tiveram o escopo padrão aplicado?
92 93 94 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 92 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).
127 128 129 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 127 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).
139 140 141 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 139 def () @scoped, @unscoped = end |
#sem escopo ➤ Critérios
Limpa todo o escopo dos critérios.
102 103 104 105 106 107 108 109 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 102 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?
117 118 119 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 117 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.
152 153 154 155 156 157 158 |
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 152 def with_default_scope crit = clonar se classe.default_scopeble? && !sem escopo? && !escopo? crit.apply_default_scope end crit end |