Módulo: Mongo::Utils Private

Definido en:
lib/mongo/utils.rb

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.

Definido en el espacio de nombres

Clases: Registrador local

Colapso delresumen del método de clase

Detalles del método de clase

.camelizar(símbolo) ⇒ Objeto

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



72
73
74
# Archivo 'lib/mongo/utils.rb', línea 72

module_function def camelizar(sym)
  sym.a_s.gsub(/_(\w)/) { $1.caso upcase }
end

.excerpt_backtrace(exc, **opts) ⇒ Objeto

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

Opciones Hash (**opts):

  • :bg_error_backtrace (verdadero | falso | nulo | entero)

    Experimental. Configúrelo como verdadero para registrar seguimientos completos de errores en subprocesos en segundo plano. Configúrelo como falso o nulo para no registrarlos. Proporcione un entero positivo para registrar hasta ese número de líneas de seguimiento.



50
51
52
53
54
55
56
57
58
59
# Archivo 'lib/mongo/utils.rb', línea 50

module_function def extracto_backtrace(Excª, **opta)
  caso líneas = opta[:bg_error_backtrace]
  Cuando entero
    ":\n#{exc.backtrace[..0 líneas ].join("\n")}"
  Cuando false, nulo
    nulo
  else
    ":\n #{exc.backtrace. join("\n")}"
  end
end

.monotonic_timeFloat

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

Esta función debe utilizarse si necesita medir el tiempo.

Ejemplos:

Calcular el tiempo transcurrido.

starting = Utils.monotonic_time
# do something time consuming
ending = Utils.monotonic_time
puts "It took #{(ending - starting).to_i} seconds"

Devuelve:

  • (Flotar) -

    segundos según el reloj monótono

Ver también:



101
102
103
# Archivo 'lib/mongo/utils.rb', línea 101

module_function def monotonic_time
  Proceso.reloj_obtener_hora(Proceso::RELOJ MONOTÓNICO)
end

.superficial_camelize_keys(hash) ⇒ Objeto

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

Convierte las claves en el hash proporcionado en cadenas y convierte las claves de estilo guion bajo en claves de estilo camel case.



68
69
70
# Archivo 'lib/mongo/utils.rb', línea 68

module_function def llaves de camello superficiales(hash)
  Picadillo[hash.map { |k, v| [camelizar(k), v] }]
end

.shallow_symbolize_keys(hash) ⇒ objeto

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

Simboliza las claves en el hash proporcionado.



62
63
64
# Archivo 'lib/mongo/utils.rb', línea 62

module_function def shallow_symbolize_keys(hash)
  Picadillo[hash.map { |k, v| [k.a_sym, v] }]
end

.transform_server_api(server_api) ⇒ Objeto

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

Nota:

server_api debe tener claves de símbolos o ser un BSON::Document.



77
78
79
80
81
82
83
84
85
86
87
88
89
# Archivo 'lib/mongo/utils.rb', línea 77

module_function def API del servidor de transformación(API del servidor)
  {}.grifo hacer |doc|
    Si Versión = API del servidor[:versión]
      doc['apiVersion'] = Versión
    end
    a no ser que API del servidor[:estricto].nil?
      doc['apiStrict'] = API del servidor[:estricto]
    end
    a no ser que API del servidor[:errores_de_obsolescencia].nil?
      doc['apiDeprecationErrors'] = API del servidor[:errores_de_obsolescencia]
    end
  end
end

.warn_bg_exception(msg, exc, **opts) ⇒ objeto

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

Opciones Hash (**opts):

  • :bg_error_backtrace (verdadero | falso | nulo | entero)

    Experimental. Configúrelo como verdadero para registrar seguimientos completos de errores en subprocesos en segundo plano. Configúrelo como falso o nulo para no registrarlos. Proporcione un entero positivo para registrar hasta ese número de líneas de seguimiento.

  • :logger (Registrador)

    Un registrador personalizado para utilizar.

  • :prefijo_de_registro (Cadena)

    Un prefijo de registro personalizado para usar al iniciar sesión.



40
41
42
43
44
# Archivo 'lib/mongo/utils.rb', línea 40

module_function def advertencia_bg_excepción(msg, Excª, **opta)
  extracto de bt = extracto_backtrace(Excª, **opta)
  logger = Registrador local.Nuevo(**opta)
  logger.advertencia de registro("#{msg}: #{exc.class}: #{exc}#{bt_excerpt}")
end