Módulo: Mongoid::Scopable::ClassMethods
- Definido em:
- lib/mongoid/scopable.rb
Recolhimento do Resumo do método de instância
-
#default_scopable? ➤ verdadeiro | false
A classe pode ter o escopo padrão aplicado?
-
#default_scope(value = nil) ⇒ Proc
Adicione um escopo padrão ao modelo.
-
#queryable ⇒ Criteria
privado
Obtenha um queryable, seja o último na pilha de escopo ou um novo.
-
#scope(nome, valor, & bloco) ➤ Objeto
Crie um escopo que possa ser acessado a partir do nível da classe ou encadeado a critérios pelo nome fornecido.
-
#scoped(options = nil) ➤ Critérios
Obtenha um critério para o documento com escopo normal.
-
#scopes ➤ Hash
Retorna um hash de todos os escopos definidos para essa classe, incluindo escopos definidos em classes ancestrais.
-
#sem escopo ➤ Critérios | Objeto
Obtenha os critérios sem nenhum escopo aplicado.
-
#with_default_scope ➤ Critérios (também: #criteria)
Obtenha um critério com o escopo padrão aplicado, se possível.
-
#with_scope(critérios) ➤ Critérios
Envia os critérios fornecidos para a pilha de escopo e os remove depois que o bloco fornecido é gerado.
-
#sem_default_scope ➤ Objeto
Execute o bloco sem aplicar o escopo padrão.
Detalhes do método de instância
#default_scopable? ➤ verdadeiro | false
A classe pode ter o escopo padrão aplicado?
95 96 97 |
# Arquivo 'lib/mongoid/scopable.rb', linha 95 def default_scopeble? default_scoping? && !Threaded.sem_default_scope?(auto) end |
#default_scope(value = nil) ⇒ Proc
Adicione um escopo padrão ao modelo. Esse escopo será aplicado a todos os critérios, a menos que #unscoped seja especificado.
83 84 85 86 87 |
# Arquivo 'lib/mongoid/scopable.rb', linha 83 def default_scope(valor = nada) valor = Proc.Novo { rendimento } se block_given? check_scope_validity(valor) auto.default_scoping = process_default_scope(valor) end |
#queryable ⇒ Criteria
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.
Obtenha um queryable, seja o último na pilha de escopo ou um novo.
107 108 109 110 111 |
# Arquivo 'lib/mongoid/scopable.rb', linha 107 def consultável crit = Threaded.current_scope(auto) || critério.Novo(auto) crit. = true se (crit.classe. && !crit.classe.cíclica?) crit end |
#scope(nome, valor, & bloco) ➤ Objeto
Crie um escopo que possa ser acessado a partir do nível da classe ou encadeado a critérios pelo nome fornecido.
132 133 134 135 136 137 138 139 140 141 |
# Arquivo 'lib/mongoid/scopable.rb', linha 132 def escopo(name, valor, &noum: bloco ; verb: bloquear) Normalizado = name.to_sym check_scope_validity(valor) check_scope_name(Normalizado) _declared_scopes[Normalizado] = { escopo: valor, extensão: Módulo.Novo(&noum: bloco ; verb: bloquear) } define_scope_method(Normalizado) end |
#scoped(options = nil) ➤ Critérios
Isso forçará a aplicação do escopo padrão.
Obtenha um critério para o documento com escopo normal.
158 159 160 |
# Arquivo 'lib/mongoid/scopable.rb', linha 158 def com escopo( = nada) consultável.com escopo() end |
#scopes ➤ Hash
Retorna um hash de todos os escopos definidos para essa classe, incluindo escopos definidos em classes ancestrais.
51 52 53 54 55 56 57 58 59 |
# Arquivo 'lib/mongoid/scopable.rb', linha 51 def scopes definido_scopes = {} ancestrais.reverter.cada fazer |classe| se classe.respond_to?(:_declared_scopes) definido_scopes.mesclar!(classe._declared_scopes) end end definido_scopes.congelar end |
#sem escopo ➤ Critérios | Objeto
Isso forçará o escopo padrão, bem como qualquer escopo aplicado usando “.with_scope”, a ser removido.
Obtenha os critérios sem nenhum escopo aplicado.
177 178 179 180 181 182 183 184 185 186 187 |
# Arquivo 'lib/mongoid/scopable.rb', linha 177 def sem escopo se block_given? sem_default_scope fazer with_scope(nada) fazer rendimento(auto) end end mais consultável.sem escopo end end |
#with_default_scope ➤ Critérios Também conhecido como: critério
Obtenha um critério com o escopo padrão aplicado, se possível.
195 196 197 |
# Arquivo 'lib/mongoid/scopable.rb', linha 195 def with_default_scope consultável.with_default_scope end |
#with_scope(critérios) ➤ Critérios
Envia os critérios fornecidos para a pilha de escopo e os remove depois que o bloco fornecido é gerado.
209 210 211 212 213 214 215 216 217 |
# Arquivo 'lib/mongoid/scopable.rb', linha 209 def with_scope(critério) anterior = Threaded.current_scope(auto) Threaded.set_current_scope(critério, auto) começar rendimento critério garantir Threaded.set_current_scope(anterior, auto) end end |
#sem_default_scope ➤ Objeto
Execute o bloco sem aplicar o escopo padrão.
227 228 229 230 231 232 |
# Arquivo 'lib/mongoid/scopable.rb', linha 227 def sem_default_scope Threaded.begin_without_default_scope(auto) rendimento garantir Threaded.exit_without_default_scope(auto) end |