Módulo: Mongoid::Criteria::Queryable::Extensions::Numeric::ClassMethods

Definido en:
lib/mongoid/criteria/queryable/extensions/numeric.rb

Resumen del método de instancia colapsar

Detalles del método de instancia

#__numérico__(objeto) ⇒ Objeto

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtiene el objeto como un valor numérico.

Ejemplos:

Obtenga el objeto como numérico.

Object.__numeric__("1.442")

Parámetros:

  • Objeto (objeto)

    El objeto a convertir.

Devuelve:

  • (objeto)

    El número convertido.

Aumenta:

  • (ArgumentError)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Archivo 'lib/mongoid/criteria/queryable/extensions/numeric.rb', línea 42

def __numeric__(Objeto)
  str = Objeto.to_s
  propagar ArgumentError si str.¿vacío?

  # Estos requisitos parecen un poco extraños, pero están explícitamente establecidos en las pruebas.
  # así que estamos obligados a mantenerlos, por ahora. (Este código fue reescrito a partir de una línea
  # regex, debido a preocupaciones de seguridad con el uso de un regex polinómico en situaciones no controladas
  # data).

  str = str.picar si str.end_with?('.')
  return 0 si str.¿vacío?

  Resultado = begin
    entero(str)
  rescate StandardError
    Float(Objeto)
  end

  entero = Resultado.to_i
  (entero == Resultado) ? entero : Resultado
end

#evolve(objeto) ⇒ Integer

Convertir el objeto a un número entero.

Ejemplos:

Evoluciona a enteros.

Integer.evolve("1")

Parámetros:

  • Objeto (objeto)

    El objeto a evolucionar.

Devuelve:

  • (Número entero)

    El objeto evolucionado.



72
73
74
75
76
77
78
# Archivo 'lib/mongoid/criteria/queryable/extensions/numeric.rb', línea 72

def evolucionar(Objeto)
  __evolve__(Objeto) hacer |obj|
    __numeric__(obj)
  rescate StandardError
    obj
  end
end