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.
69 70 71 |
# File 'lib/mongo/utils.rb', line 69 module_function def camelize(sym) sym.to_s.gsub(/_(\w)/) { ::Regexp.last_match(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.
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mongo/utils.rb', line 47 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.
94 95 96 |
# File 'lib/mongo/utils.rb', line 94 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.
65 66 67 |
# File 'lib/mongo/utils.rb', line 65 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.
59 60 61 |
# File 'lib/mongo/utils.rb', line 59 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.
74 75 76 77 78 79 80 81 82 |
# File 'lib/mongo/utils.rb', line 74 module_function def transform_server_api(server_api) {}.tap do |doc| if version = server_api[:version] doc['apiVersion'] = version end doc['apiStrict'] = server_api[:strict] unless server_api[:strict].nil? doc['apiDeprecationErrors'] = server_api[:deprecation_errors] unless server_api[:deprecation_errors].nil? 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.
37 38 39 40 41 |
# File 'lib/mongo/utils.rb', line 37 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 |