모듈: Mongo::Utils Private

다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/utils.rb

이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

네임스페이스 아래에 정의됨

클래스: LocalLogger

클래스 메서드 요약 접기

클래스 메서드 세부 정보

.camelize(sym) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



72
73
74
# 파일 'build/ruby-driver-v2.19/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
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 50

module_function def excerpt_backtrace(exc, **opts)
  case 라인 = opts[:bg_error_backtrace]
  when Integer
    ":\n#{exc.backtrace[0..lines].join("\n")} }"
  when 거짓, nil
    nil
  other
    ":\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"

반환합니다:

  • (Float)

    단조적 시계에 따른 초

다음도 참조하세요.



101
102
103
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 101

module_function def 단조적 시간
  프로세스.시계_gettime(프로세스::CLOCK_MONOTONIC)
end

.얕은_camelize_keys(해시) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

제공된 해시의 키를 문자열화하고 밑줄 스타일 키를 카멜 표기법 스타일 키로 변환합니다.



68
69
70
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 68

module_function def 얕은_camelize_keys(해시)
  해시[해시.map { |k, v| [camelize(k), v] }]
end

.shallow_symbolize_keys(해시) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

제공된 해시의 키를 기호화합니다.



62
63
64
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 62

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

.transformation_server_api(server_api) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

server_api는 기호 키를 가지거나 BSON::Document여야 합니다.



77
78
79
80
81
82
83
84
85
86
87
88
89
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 77

module_function def transformation_server_api(server_api)
  {}. do |doc|
    만약 버전 = 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

.경고_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
# 파일 'build/ruby-driver-v2.19/lib/mongo/utils.rb', 줄 40

module_function def 경고_bg_Exception(msg, exc, **opts)
  bt_excerpt = excerpt_backtrace(exc, **opts)
  로거 = LocalLogger.신규(**opts)
  로거.log_warn("#{msg}: #{exc.class}: #{exc}#{bt_excerpt}")
end