Módulo: Mongoid::Matcher::Bits Private
- Incluído em:
- BitsAllClear, BitsAllSet, BitsAnyClear, BitsAnySet
- Definido em:
- lib/mongoid/matcher/bits.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Módulo Mixin incluído em correspondedores de expressão bitwise.
Recolhimento do Resumo do método de classe
-
.operator_name ➤ string
privado
Retorna o nome do operador de expressão .
Recolhimento do Resumo do método de instância
-
#correspondências?(_exists, valor, condição) ➤ true | false
privado
Retorna se um valor satisfaz uma expressão bitwise.
Detalhes do método de classe
.operator_name ➤ string
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.
Retorna o nome do operador de expressão .
60 61 62 |
# Arquivo 'lib/mongoid/matcher/bits.rb', linha 60 module_function def operator_name name.sub(/.*::/, '').sub(/\A(.)/) { |l| l.downcase } end |
Detalhes do método de instância
#correspondências?(_exists, valor, condição) ⇒ true | false
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.
Retorna se um valor satisfaz uma expressão bitwise.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# Arquivo 'lib/mongoid/matcher/bits.rb', linha 17 def correspondências?(_exists, valor, Condição) caso valor quando BSON::Binário valor = valor.de dados.dividir('').map { |n| '%02x' % n.ord }.juntar.to_i(16) end caso Condição quando Array array_matches?(valor, Condição) quando BSON::Binário int_cond = Condição.de dados.dividir('').map { |n| '%02x' % n.ord }.juntar.to_i(16) int_matches?(valor, int_cond) quando Inteiro se Condição < 0 aumentar Errors::Query inválida, "Valor inválido para $#{operator_name} argumento: números inteiros negativos não são permitidos: #{condição}" end int_matches?(valor, Condição) quando Float # Permitir float que são números inteiros (por exemplo 50.0), mas rejeite aquelas # com uma parte fracionária (por exemplo 50.1), pois as operações bitwise exigem inteiros. int_cond = Condição.to_i se int_cond == Condição se int_cond < 0 aumentar Errors::Query inválida, "Valor inválido para $#{operator_name} argumento: números negativos não são permitidos: #{conditions}" end int_matches?(valor, int_cond) mais aumentar Errors::Query inválida, "Tipo inválido para $#{operator_name} argumento: não representável como um número inteiro: #{condição}" end mais aumentar Errors::Query inválida, "Tipo inválido para argumento de $#{operator_name} : #{condição}" end end |