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)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Arquivo 'lib/mongoid/matcher/type.rb', linha 22

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|
    se one_matches?(existe, valor, Condição)
      Método true
    end
  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)


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
117
118
119
120
121
# Arquivo 'lib/mongoid/matcher/type.rb', linha 50

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