Módulo: Mongoid::Matcher::Type Private

Definido em:
lib/mongoid/matcher/type.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.

Correspondente na memória para a expressão$type .

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.correspondências?(existe, valor, condição) ➤ verdadeiro | false, booleano

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$type .

Parâmetros:

  • existe (verdadeiro | falso)

    Se o valor existe.

  • valor (Objeto)

    O valor a ser verificado.

  • Condição (Inteiro | Array<Integer>)

    O predicado da condição $type que corresponde à enumeração do tipo BSON.

Retorna:

  • (verdadeiro | falso)

    Se o valor corresponde.

  • (Booleano)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Arquivo 'lib/mongoid/matcher/type.rb', linha 19

module_function def correspondências?(existe, valor, Condição)
  condições = caso Condição
               quando Array
                 Condição
               quando Inteiro
                 [ Condição ]
               mais
                 aumentar Errors::Query inválida, "Argumento $type desconhecido: #{condição}"
               end
  condições.cada fazer |Condição|
    Método true se one_matches?(existe, valor, Condição)
  end
  false
end

.one_matches?(existe, valor, condição) ➤ verdadeiro | false, booleano

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 um único valor de expressão $type.

Parâmetros:

  • existe (verdadeiro | falso)

    Se o valor existe.

  • valor (Objeto)

    O valor a ser verificado.

  • Condição (Inteiro)

    O predicado da condição $type que corresponde à enumeração do tipo BSON.

Retorna:

  • (verdadeiro | falso)

    Se o valor corresponde.

  • (Booleano)


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Arquivo 'lib/mongoid/matcher/type.rb', linha 45

module_function def one_matches?(existe, valor, Condição)
  caso Condição
  quando 1
    #Duplo
    valor.is_a?(Float)
  quando 2
    string
    valor.is_a?(String)
  quando 3
    # Objeto
    valor.is_a?(Hash)
  quando 4
    # Array
    valor.is_a?(Array)
  quando 5
    # Dados binários
    valor.is_a?(BSON::Binário)
  quando 6
    # Indefinido
    valor.is_a?(BSON::Indefinido)
  quando 7
    # ObjectId
    valor.is_a?(BSON::ObjectId)
  quando 8
    #Booleano
    valor.is_a?(trueClass) || valor.is_a?(FalseClass)
  quando 9
    # Data
    valor.is_a?(Data) || valor.is_a?(Hora) || valor.is_a?(DateTime)
  quando 10
    # Nulo
    existe && valor.is_a?(NilClass)
  quando 11
    # Regex
    valor.is_a?(regexp::Cru) || valor.is_a?(::regexp)
  quando 12
    # DBPointer obsoleto
    valor.is_a?(BSON::DBPointer)
  quando 13
    # JavaScript
    valor.is_a?(BSON::Código)
  quando 14
    #Símbolo obsoleto
    valor.is_a?(Símbolo) || valor.is_a?(BSON::Símbolo::Cru)
  quando 15
    # JavaScript com código obsoleto
    valor.is_a?(BSON::CodeWithScope)
  quando 16
    # 32-bit int
    valor.is_a?(BSON::Int32) || (valor.is_a?(Inteiro) && (-2**32..(2**32) - 1).incluir?(valor))
  quando 17
    # Timestamp
    valor.is_a?(BSON::Timestamp)
  quando 18
    # Longo
    valor.is_a?(BSON::Int64) ||
      (valor.is_a?(Inteiro) &&
        (-2**64..(2**64) - 1).incluir?(valor) &&
        !(-2**32..(2**32) - 1).incluir?(valor))
  quando 19
    # Decimal
    valor.is_a?(BSON::Decimal128)
  quando -1
    # minKey
    valor.is_a?(BSON::Chave mín.)
  quando 127
    #maxKey
    valor.is_a?(BSON::Tecla máxima)
  mais
    aumentar Errors::Query inválida, "Argumento $type desconhecido: #{condição}"
  end
end