Módulo: Mongo::Utils Privado

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 bajo Namespace

Clases: LocalLogger

Resumen del método de clase colapsar

Detalles del método de clase

.camelize(sym) ⇒ 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.to_s.gsub(/_(\w)/) { $1.mayúsculas }
end

.excerpt_backtrace(exc, **opts) ⇒ Object

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

Hash de opciones (**opts):

  • :bg_error_backtrace (true | false | nil | Integer)

    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:

Calcule el tiempo transcurrido.

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

Devuelve:

  • (Float)

    segundos según el reloj monotónico

Véase también:



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

module_function def monotonic_time
  Proceso.clock_gettime(Proceso::CLOCK_MONOTONIC)
end

.shallow_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.to_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ímbolo o ser un BSON::documento.



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

module_function def transform_server_api(server_api)
  {}.tocar hacer |doc|
    si Versión = server_api[:versión]
      doc['apiVersion'] = Versión
    end
    a menos que server_api[':estricto'].nil?
      doc['apiStrict'] = server_api[':estricto']
    end
    a menos que server_api[:errores_de_obsolescencia].nil?
      doc['apiDeprecationErrors'] = server_api[: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.

Hash de opciones (**opts):

  • :bg_error_backtrace (true | false | nil | Integer)

    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 (Logger)

    Un registrador personalizado para usar.

  • log_prefix (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 warn_bg_exception(msg, Excª, **opta)
  extracto de bt = extracto_backtrace(Excª, **opta)
  logger = LocalLogger.Nuevo(**opta)
  logger.advertencia de registro("#{msg}: #{exc.class}: #{exc}#{bt_excerpt}")
end