模块:Mongo::Utils Private

定义于:
lib/mongo/utils.rb

该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。

在命名空间下定义

类: LocalLogger

类方法摘要折叠

类方法详细信息

camelize (sym) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



72
73
74
# File 'lib/ Mongo/utils.rb', 第 72 行

module_function def camelize(sym)
  sym.to_s.gsub(/_(\w)/) { $1.upcase }
end

excerpt_backtrace (exc, **opts) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

选项哈希 ( **opts ):

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

    实验性的。 设置为 true 可记录后台线程中错误的完整回溯。 设置为 false 或 nil 可不记录回溯。 提供一个正整数以记录最多那么多的回溯行。



50
51
52
53
54
55
56
57
58
59
# File 'lib/ Mongo/utils.rb', 第 50 行

module_function def excerpt_backtrace(排除, **opts)
  案例 lines = opts[:bg_error_backtrace]
  when 整型
    " :\n #{ exc . backtrace [0 ..lines ] . join ( " \ n " ) } "
  when false, nil
    nil
  else
    " :\n #{ exc . backtrace . join ( " \n " ) } "
  end
end

.monotonic_timeFloat

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

如果需要测量时间,则应使用此函数。

例子:

计算经过的时间。

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

返回:

  • (浮点)

    秒数(根据单调时钟)

另请参阅:



101
102
103
# File 'lib/ Mongo/utils.rb', 第 101 行

module_function def monotic_time
  处理.clock_gettime(处理::CLOCK_MONOTONIC)
end

shallow_camelize_keys (hash) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将提供的哈希中的键字符串化,并将下划线样式的键转换为驼峰式大小写样式的键。



68
69
70
# File 'lib/ Mongo/utils.rb', 第 68 行

module_function def shallow_camelize_keys(哈希)
  哈希[哈希.map { |k, v| [camelize(k), v] }]
end

shallow_symbolize_keys (hash) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

表示所提供哈希中的键。



62
63
64
# File 'lib/ Mongo/utils.rb', 第 62 行

module_function def shallow_symbolize_keys(哈希)
  哈希[哈希.map { |k, v| [k.to_sym, v] }]
end

transform_server_api (server_api) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

注意:

server_api 必须具有符号键或者是 BSON::Document。



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/ Mongo/utils.rb', 第 77 行

module_function def transform_server_api(server_api)
  {}.点击 do |doc|
    if 版本 = server_api[:version]
      doc['apiVersion'] = 版本
    end
    除非 server_api[:strict].nil?
      doc[' apiStrict '] = server_api[:strict]
    end
    除非 server_api[:deprecation_errors].nil?
      doc['apiDeprecationErrors'] = server_api[:deprecation_errors]
    end
  end
end

warn_bg_Exception (msg, exc, **opts) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

选项哈希 ( **opts ):

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

    实验性的。 设置为 true 可记录后台线程中错误的完整回溯。 设置为 false 或 nil 可不记录回溯。 提供一个正整数以记录最多那么多的回溯行。

  • :logger 记录器

    要使用的自定义记录器。

  • :log_prefix string

    记录日志时使用的自定义日志前缀。



40
41
42
43
44
# File 'lib/ Mongo/utils.rb', 第 40 行

module_function def warn_bg_Exception(msg, 排除, **opts)
  bt_excerpt = excerpt_backtrace(排除, **opts)
  记录器 = LocalLogger.new(**opts)
  记录器.log_warn("#{msg}: #{exc.class}: #{exc}#{bt_excerpt}")
end