클래스: Mongo::URI::OptionsMapper Private

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
로깅 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb

개요

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

URI 옵션과 Ruby 옵션 간의 매핑을 수행합니다.

이 클래스에는 다음이 포함됩니다.

  • URI 옵션이 Ruby 옵션으로 변환되는 방식을 정의하는 매핑입니다.

  • 대소문자를 사용한 URI 옵션 이름에서 표준 URI 옵션 이름으로의 매핑입니다.

  • URI 옵션 값을 Ruby 옵션 값으로 변환하는 메서드(convert_* 메서드)입니다. 이는 일반적으로 제공된 입력이 유효하지 않을 때 경고하고 nil을 반환합니다.

  • Ruby 옵션 값을 표준화된 MongoClient 옵션으로 변환하는 메서드(revert_* 메서드)입니다. 이는 입력이 유효하다고 가정하며 일반적으로 유효성 검사를 수행하지 않습니다.

URI 옵션 이름은 대소문자를 구분하지 않습니다. Ruby 옵션은 기호로 지정됩니다(클라이언트 옵션에서는 무관한 액세스를 사용함).

이후:

  • 2.0.0

상수 요약

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

생성자 세부 정보

#initialize(**opts) ⇒ OptionsMapper

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

옵션 매퍼를 인스턴스화합니다.

매개변수:

  • opts (해시)

    사용자 지정 가능한 옵션 세트

옵션 해시(**opts):

  • :logger (로거)

    사용할 사용자 지정 로거입니다.

이후:

  • 2.0.0



46
47
48
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 46

def 초기화(**opts)
  @options = opts
end

인스턴스 속성 세부 정보

#options해시 (읽기 전용)

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

옵션을 반환합니다.

반환합니다:

  • (해시)

    옵션.

이후:

  • 2.0.0



51
52
53
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 51

def 옵션
  @options
end

인스턴스 메서드 세부 정보

#add_uri_option(키, 값, uri_options) ⇒ 객체

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

uri 옵션 해시에 옵션을 추가합니다.

Acquires a target for the option based on group.
Transforms the value.
Merges the option into the target.

매개변수:

  • (string)

    URI 옵션 이름입니다.

  • value (string)

    옵션의 값입니다.

  • uri_options (해시)

    기본 옵션 대상입니다.

이후:

  • 2.0.0



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 62

def add_uri_option(, value, uri_options)
  전략 = URI_OPTION_MAP[.downcase]
  만약 전략.nil?
    log_warn(" URI' #{ @string}'에 지원되지 않는 URI 옵션' #{key} '. 무시됩니다.")
    반환
  end

  그룹 = 전략[:group]
  대상 = 만약 그룹
    uri_options[그룹] || {}
  other
    uri_options
  end
  value = apply_transform(, value, 전략[:type])
  # 때로는 여기의 값이 nil일 수 있습니다.
  # 읽기 설정 태그 또는 인증 메커니즘 속성 및 모든
  내부의 데이터 #개가 유효하지 않습니다. 이러한 옵션은 무시합니다.
  하지 않는 한 value.nil?
    merge_uri_option(대상, value, 전략[:name])
  end

  만약 그룹 && !대상.비어 있나요? && !uri_options.키?(그룹)
    uri_options[그룹] = 대상
  end
end

#Ruby_to_smc(opts) ⇒ 해시

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

제공된 Ruby 옵션을 '표준화된 MongoClient 옵션'으로 변환합니다.

매개변수:

  • opts (해시)

    변환할 Ruby 옵션.

반환합니다:

  • (해시)

    표준화된 MongoClient 옵션.

이후:

  • 2.0.0



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 126

def Ruby_to_smc(opts)
  rv = {}
  URI_OPTION_MAP. do |uri_key, 사양|
    만약 사양[:group]
      v = opts[사양[:group]]
      v = v && v[사양[:name]]
    other
      v = opts[사양[:name]]
    end
    하지 않는 한 v.nil?
      만약 유형 = 사양[:type]
        v = send("revert_#{type}", v)
      end
      canonical_key = URI_OPTION_CANONIAL_NAMES[uri_key]
      하지 않는 한 canonical_key
        올리다 ArgumentError, "옵션 #{uri_key} 를 알 수 없습니다. "
      end
      rv[canonical_key] = v
    end
  end
  # 기본값이 true인 옵션의 경우 true이면 값을 제거합니다.
  %w(retryReads retryWrites). do |k|
    만약 rv[k]
      rv.삭제(k)
    end
  end
  # 기본값인 메커니즘에 대해 $external인 경우 인증 소스를 제거합니다.
  # (또는 require) 해당 인증 소스.
  만약 %w(MONGODB-AWS).포함?(rv['authMechanism']) && rv['authSource'] == '$external'
    rv.삭제('authSource')
  end
  # ssl과 tls는 별칭이므로 ssl을 제거합니다.
  rv.삭제('ssl')
  # TODO가 데이터베이스와 동일한 경우 authSource를 제거합니다.
  # 클라이언트에 지정된 데이터베이스를 파악하려면 이 메서드가 필요합니다.
  rv
end

#Ruby_to_string(opts) ⇒ 해시

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

제공된 Ruby 옵션을 URI string 의 표현으로 변환합니다.

매개변수:

  • opts (해시)

    변환할 Ruby 옵션.

반환합니다:

  • (해시)

    URI string 해시입니다.

이후:

  • 2.0.0



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 169

def Ruby_to_string(opts)
  rv = {}
  URI_OPTION_MAP. do |uri_key, 사양|
    만약 사양[:group]
      v = opts[사양[:group]]
      v = v && v[사양[:name]]
    other
      v = opts[사양[:name]]
    end
    하지 않는 한 v.nil?
      만약 유형 = 사양[:type]
        v = send("stringify_#{type}", v)
      end
      canonical_key = URI_OPTION_CANONIAL_NAMES[uri_key]
      하지 않는 한 canonical_key
        올리다 ArgumentError, "옵션 #{uri_key} 를 알 수 없습니다. "
      end
      rv[canonical_key] = v
    end
  end
  # 기본값이 true인 옵션의 경우 true이면 값을 제거합니다.
  %w(retryReads retryWrites). do |k|
    만약 rv[k]
      rv.삭제(k)
    end
  end
  # 기본값인 메커니즘에 대해 $external인 경우 인증 소스를 제거합니다.
  # (또는 require) 해당 인증 소스.
  만약 %w(MONGODB-AWS).포함?(rv['authMechanism']) && rv['authSource'] == '$external'
    rv.삭제('authSource')
  end
  # ssl과 tls는 별칭이므로 ssl을 제거합니다.
  rv.삭제('ssl')
  # TODO가 데이터베이스와 동일한 경우 authSource를 제거합니다.
  # 클라이언트에 지정된 데이터베이스를 파악하려면 이 메서드가 필요합니다.
  rv
end

#smc_to_ruby(opts) ⇒ 객체

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

이후:

  • 2.0.0



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 파일 'build/ruby-driver-v2.19/lib/mongo/uri/options_mapper.rb', 줄 88

def smc_to_ruby(opts)
  uri_options = {}

  opts. do |, value|
    전략 = URI_OPTION_MAP[.downcase]
    만약 전략.nil?
      log_warn(" URI' #{ @string}'에 지원되지 않는 URI 옵션' #{key} '. 무시됩니다.")
      반환
    end

    그룹 = 전략[:group]
    대상 = 만약 그룹
      uri_options[그룹] || {}
    other
      uri_options
    end

    value = apply_transform(, value, 전략[:type])
    # 때로는 여기의 값이 nil일 수 있습니다.
    # 읽기 설정 태그 또는 인증 메커니즘 속성 및 모든
    내부의 데이터 #개가 유효하지 않습니다. 이러한 옵션은 무시합니다.
    하지 않는 한 value.nil?
      merge_uri_option(대상, value, 전략[:name])
    end

    만약 그룹 && !대상.비어 있나요? && !uri_options.키?(그룹)
      uri_options[그룹] = 대상
    end
  end

  uri_options
end