Módulo: Mongoid::Matcher::Type Privado

Definido en:
lib/mongoid/matcher/type.rb

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Emparejador en memoria para la expresión $type.

Resumen del método de clase colapsar

Detalles del método de clase

.¿coincide?(existe, valor, condición) ⇒ verdadero | falso, booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si un valor satisface una expresión $type.

Parámetros:

  • exists (true | false)

    Si el valor existe.

  • Valor (objeto)

    El valor a comprobar.

  • condición (Entero | Matriz<Integer>)

    El predicado de condición $type que corresponde a la enumeración de tipo BSON.

Devuelve:

  • (true | false)

    Si el valor coincide.

  • (booleano)


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

module_function def coincide?(exists, Valor, condición)
  condiciones = caso condición
  Cuando Arreglo
    condición
  Cuando entero
    [condición]
  else
    propagar Errors::Consulta no válida, "Argumento desconocido $type: #{condition}"
  end
  condiciones.cada hacer |condición|
    si one_matches?(exists, Valor, condición)
      return true
    end
  end
  false
end

.one_matches?(exists, value, condition) ⇒ verdadero | falso, Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si un valor cumple con un solo valor de expresión $type.

Parámetros:

  • exists (true | false)

    Si el valor existe.

  • Valor (objeto)

    El valor a comprobar.

  • condición (Número entero)

    El predicado de condición $type que corresponde a la enumeración de tipo BSON.

Devuelve:

  • (true | false)

    Si el valor coincide.

  • (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
# Archivo 'lib/mongoid/matcher/type.rb', línea 50

module_function def one_matches?(exists, Valor, condición)
  caso condición
  Cuando 1
    # double
    Float === Valor
  Cuando 2
    # Cadena
    String === Valor
  Cuando 3
    # objeto
    Picadillo === Valor
  Cuando 4
    # arreglo
    Arreglo === Valor
  Cuando 5
    # Datos binarios
    BSON::Binario === Valor
  Cuando 6
    # Indefinido
    BSON::Indefinido === Valor
  Cuando 7
    # ObjectId
    BSON::ObjectId === Valor
  Cuando 8
    # booleano
    TrueClass === Valor || FalseClass === Valor
  Cuando 9
    # Fecha
    fecha === Valor || Tiempo === Valor || Fecha y hora === Valor
  Cuando 10
    # Nulo
    exists && NilClass === Valor
  Cuando 11
    # Expresiones regulares
    Regexp::Raw === Valor || ::Regexp === Valor
  Cuando 12
    # DBPointer en desuso
    BSON::DBPointer === Valor
  Cuando 13
    # JavaScript
    BSON::Código === Valor
  Cuando 14
    # Símbolo obsoleto
    Símbolo === Valor || BSON::Símbolo::Raw === Valor
  Cuando 15
    # Javascript con código obsoleto
    BSON::Código con alcance === Valor
  Cuando 16
    # 32-bit int
    BSON::Int32 === Valor || entero === Valor && (-2**32..2**32-1).incluir?(Valor)
  Cuando 17
    # Marca de tiempo
    BSON::Marca de tiempo === Valor
  Cuando 18
    # Long
    BSON::Int64 === Valor ||
      entero === Valor &&
        (-2**64..2**64-1).incluir?(Valor) &&
        !(-2**32..2**32-1).incluir?(Valor)
  Cuando 19
    # Decimal
    BSON::Decimal128 === Valor
  Cuando -1
    # minKey
    BSON::MinKey === Valor
  Cuando 127
    # maxKey
    BSON::Clave máxima === Valor
  else
    propagar Errors::Consulta no válida, "Argumento desconocido $type: #{condition}"
  end
end