Module: Mongo::Utils Private
- Defined in:
- lib/mongo/utils.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Defined Under Namespace
Classes: LocalLogger
Class Method Summary collapse
- .camelize(sym) ⇒ Object private
- .excerpt_backtrace(exc, **opts) ⇒ Object private
-
.monotonic_time ⇒ Float
private
This function should be used if you need to measure time.
-
.shallow_camelize_keys(hash) ⇒ Object
private
Stringifies the keys in the provided hash and converts underscore style keys to camel case style keys.
-
.shallow_symbolize_keys(hash) ⇒ Object
private
Symbolizes the keys in the provided hash.
- .transform_server_api(server_api) ⇒ Object private
- .warn_bg_exception(msg, exc, **opts) ⇒ Object private
Class Method Details
.camelize(sym) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
72 73 74 |
# File 'lib/mongo/utils.rb', line 72 module_function def camelize(sym) sym.to_s.gsub(/_(\w)/) { $1.upcase } end |
.excerpt_backtrace(exc, **opts) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mongo/utils.rb', line 50 module_function def excerpt_backtrace(exc, **opts) case lines = opts[:bg_error_backtrace] when Integer ":\n#{exc.backtrace[0..lines].join("\n")}" when false, nil nil else ":\n#{exc.backtrace.join("\n")}" end end |
.monotonic_time ⇒ Float
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This function should be used if you need to measure time.
101 102 103 |
# File 'lib/mongo/utils.rb', line 101 module_function def monotonic_time Process.clock_gettime(Process::CLOCK_MONOTONIC) end |
.shallow_camelize_keys(hash) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Stringifies the keys in the provided hash and converts underscore style keys to camel case style keys.
68 69 70 |
# File 'lib/mongo/utils.rb', line 68 module_function def shallow_camelize_keys(hash) Hash[hash.map { |k, v| [camelize(k), v] }] end |
.shallow_symbolize_keys(hash) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Symbolizes the keys in the provided hash.
62 63 64 |
# File 'lib/mongo/utils.rb', line 62 module_function def shallow_symbolize_keys(hash) Hash[hash.map { |k, v| [k.to_sym, v] }] end |
.transform_server_api(server_api) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
server_api must have symbol keys or be a BSON::Document.
77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/mongo/utils.rb', line 77 module_function def transform_server_api(server_api) {}.tap do |doc| if version = server_api[:version] doc['apiVersion'] = version end unless server_api[:strict].nil? doc['apiStrict'] = server_api[:strict] end unless server_api[:deprecation_errors].nil? doc['apiDeprecationErrors'] = server_api[:deprecation_errors] end end end |
.warn_bg_exception(msg, exc, **opts) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
40 41 42 43 44 |
# File 'lib/mongo/utils.rb', line 40 module_function def warn_bg_exception(msg, exc, **opts) bt_excerpt = excerpt_backtrace(exc, **opts) logger = LocalLogger.new(**opts) logger.log_warn("#{msg}: #{exc.class}: #{exc}#{bt_excerpt}") end |