클래스: Mongo::URI::OptionsMapper Private
- 상속:
-
객체
- 객체
- Mongo::URI::OptionsMapper
- 다음을 포함합니다.
- 로깅 가능
- 다음에 정의됨:
- lib/ Mongo/uri/options_mapper.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
URI 옵션과 Ruby 옵션 간의 매핑을 수행합니다.
이 클래스에는 다음이 포함됩니다.
- URI 옵션이 Ruby 옵션으로 변환되는 방식을 정의하는 매핑입니다.
- 대소문자를 사용한 URI 옵션 이름에서 표준 URI 옵션 이름으로의 매핑입니다.
- URI 옵션 값을 Ruby 옵션 값으로 변환하는 메서드(convert_* 메서드)입니다. 이는 일반적으로 제공된 입력이 유효하지 않을 때 경고하고 nil을 반환합니다.
- Ruby 옵션 값을 표준화된 MongoClient 옵션으로 변환하는 메서드(revert_* 메서드)입니다. 이는 입력이 유효하다고 가정하며 일반적으로 유효성 검사를 수행하지 않습니다.
URI 옵션 이름은 대소문자를 구분하지 않습니다. Ruby 옵션은 기호로 지정됩니다(클라이언트 옵션에서는 무관한 액세스를 사용함).
상수 요약 접기
- URI_OPTION_MAP =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
변환 전략에 대한 URI 옵션 매개변수 맵을 저장하기 위한 해시
{}
- URI_OPTION_CANONIAL_NAMES =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
맵을 소문자에서 표준 URI 옵션 이름으로 반환합니다.
{}
Loggable에서 포함된 상수
인스턴스 속성 요약 접기
-
옵션 #개 ⇒ 해시
읽기 전용
비공개
옵션.
클래스 메서드 요약 접기
-
.uri_option(uri_key, 이름, ** 예비) ⇒ 객체
비공개
URI_OPTION_MAP에 MongoDB URI 옵션을 등록하는 간단한 내부 dsl.
인스턴스 메서드 요약 접기
-
#add_uri_option(키, 값, uri_options) ⇒ 객체
비공개
uri 옵션 해시에 옵션을 추가합니다.
-
#initialize(**opts) ⇒ OptionsMapper
생성자
비공개
옵션 매퍼를 인스턴스화합니다.
-
#Ruby_to_smc(opts) ⇒ 해시
비공개
제공된 Ruby 옵션을 '표준화된 MongoClient 옵션'으로 변환합니다.
-
#Ruby_to_string(opts) ⇒ 해시
비공개
제공된 Ruby 옵션을 URI string 의 표현으로 변환합니다.
- #smc_to_ruby(opts) ⇒ 객체 비공개
Loggable에 포함된 메서드
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
생성자 세부 정보
#initialize(**opts) ⇒ OptionsMapper
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
옵션 매퍼를 인스턴스화합니다.
43 44 45 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 43 def 초기화(**opts) @options = opts end |
인스턴스 속성 세부 정보
#options ⇒ 해시 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
옵션을 반환합니다.
48 49 50 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 48 def @options end |
클래스 메서드 세부 정보
.uri_option(uri_key, 이름, ** 예비) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
URI_OPTION_MAP에 MongoDB URI 옵션을 등록하는 간단한 내부 dsl.
205 206 207 208 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 205 def self.uri_option(uri_key, 이름, **예비) URI_OPTION_MAP[uri_key.downcase] = { 이름: 이름 }.update(예비) URI_OPTION_CANONIAL_NAMES[uri_key.downcase] = uri_key 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.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 59 def add_uri_option(키, value, ) 전략 = URI_OPTION_MAP[키.downcase] 만약 전략.nil? log_warn(" URI' #{ @string}'에 지원되지 않는 URI 옵션' #{key} '. 무시됩니다.") 반환 end 그룹 = 전략[:group] 대상 = 만약 그룹 [그룹] || {} other end value = apply_transform(키, value, 전략[:type]) # 때로는 여기의 값이 nil일 수 있습니다. # 읽기 설정 태그 또는 인증 메커니즘 속성 및 모든 내부의 데이터 #개가 유효하지 않습니다. 이러한 옵션은 무시합니다. merge_uri_option(대상, value, 전략[:name]) 하지 않는 한 value.nil? 반환 하지 않는 한 그룹 && !대상.비어 있나요? && !.키?(그룹) [그룹] = 대상 end |
#Ruby_to_smc(opts) ⇒ 해시
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
제공된 Ruby 옵션을 '표준화된 MongoClient 옵션'으로 변환합니다.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 117 def Ruby_to_smc(opts) rv = {} URI_OPTION_MAP.각 do |uri_key, 사양| 만약 사양[:group] v = opts[사양[:group]] 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] 올리다 ArgumentError, "옵션 #{uri_key} 를 알 수 없습니다. " 하지 않는 한 canonical_key rv[canonical_key] = v end # 기본값이 true인 옵션의 경우 true이면 값을 제거합니다. %w[retryReads retryWrites].각 do |k| rv.삭제(k) 만약 rv[k] end # 기본값인 메커니즘에 대해 $external인 경우 인증 소스를 제거합니다. # (또는 require) 해당 인증 소스. rv.삭제('authSource') 만약 %w[MONGODB-AWS].포함?(rv['authMechanism']) && rv['authSource'] == '$external' # ssl과 tls는 별칭이므로 ssl을 제거합니다. rv.삭제('ssl') # TODO: 데이터베이스 와 동일한 경우 authSource를 제거 . # 클라이언트에 지정된 데이터베이스를 파악하려면 이 메서드가 필요합니다. rv end |
#Ruby_to_string(opts) ⇒ 해시
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
제공된 Ruby 옵션을 URI string 의 표현으로 변환합니다.
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 155 def Ruby_to_string(opts) rv = {} URI_OPTION_MAP.각 do |uri_key, 사양| 만약 사양[:group] v = opts[사양[:group]] 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] 올리다 ArgumentError, "옵션 #{uri_key} 를 알 수 없습니다. " 하지 않는 한 canonical_key rv[canonical_key] = v end # 기본값이 true인 옵션의 경우 true이면 값을 제거합니다. %w[retryReads retryWrites].각 do |k| rv.삭제(k) 만약 rv[k] end # 기본값인 메커니즘에 대해 $external인 경우 인증 소스를 제거합니다. # (또는 require) 해당 인증 소스. rv.삭제('authSource') 만약 %w[MONGODB-AWS].포함?(rv['authMechanism']) && rv['authSource'] == '$external' # ssl과 tls는 별칭이므로 ssl을 제거합니다. rv.삭제('ssl') # TODO: 데이터베이스 와 동일한 경우 authSource를 제거 . # 클라이언트에 지정된 데이터베이스를 파악하려면 이 메서드가 필요합니다. rv end |
#smc_to_ruby(opts) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# 파일 'lib/ Mongo/uri/options_mapper.rb', 줄 83 def smc_to_ruby(opts) = {} opts.각 do |키, value| 전략 = URI_OPTION_MAP[키.downcase] 만약 전략.nil? log_warn(" URI' #{ @string}'에 지원되지 않는 URI 옵션' #{key} '. 무시됩니다.") 반환 end 그룹 = 전략[:group] 대상 = 만약 그룹 [그룹] || {} other end value = apply_transform(키, value, 전략[:type]) # 때로는 여기의 값이 nil일 수 있습니다. # 읽기 설정 태그 또는 인증 메커니즘 속성 및 모든 내부의 데이터 #개가 유효하지 않습니다. 이러한 옵션은 무시합니다. merge_uri_option(대상, value, 전략[:name]) 하지 않는 한 value.nil? [그룹] = 대상 만약 그룹 && !대상.비어 있나요? && !.키?(그룹) end end |