模块:Mongo::Utils Private

定义于:
lib/mongo/utils.rb

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

在命名空间下定义

类: LocalLogger

类方法摘要折叠

类方法详细信息

camelize (sym) ⇒对象

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



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

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

excerpt_backtrace (exc, **opts) ⇒对象

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

选项哈希 ( **opts ):

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

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



47
48
49
50
51
52
53
54
55
56
# File 'lib/ Mongo/utils.rb', 第 47 行

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"

返回:

  • (浮点)

    秒数(根据单调时钟)

另请参阅:



94
95
96
# File 'lib/ Mongo/utils.rb', 第 94 行

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

shallow_camelize_keys (hash) ⇒对象

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

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



65
66
67
# File 'lib/ Mongo/utils.rb', 第 65 行

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

shallow_symbolize_keys (hash) ⇒对象

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

表示所提供哈希中的键。



59
60
61
# File 'lib/ Mongo/utils.rb', 第 59 行

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

transform_server_api (server_api) ⇒对象

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

注意:

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



74
75
76
77
78
79
80
81
82
# File 'lib/ Mongo/utils.rb', 第 74 行

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

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

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

选项哈希 ( **opts ):

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

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

  • :logger 记录器

    要使用的自定义记录器。

  • :log_prefix string

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



37
38
39
40
41
# File 'lib/ Mongo/utils.rb', 第 37 行

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