クラス: Mongo::URI::OptionsMapper Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::URI::OptionsMapper
- 次のことが含まれます。
- ログ記録可能
- 定義:
- lib/mongo/uri/options_mapper.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
URI オプションと Ruby オプションの間のマッピングを実行します。
このクラスには、次のものが含まれます。
- URI オプションが Ruby オプションに変換される方法を定義するマッピング。
- ダウングレードされた URI オプション名から標準ケースの URI オプション名へのマッピング。
- URI オプション値を Ruby オプション値に変換するためのメソッド( convert_* メソッド)。 これらは通常、指定された入力が無効な場合は警告を発し、 nil を返します。
- Ruby オプション値の標準化された MongoClient オプション(revert_* メソッド)への Ruby オプション値の変換を実行するメソッド。 これらは入力が有効であることを前提としており、通常検証は実行されません。
URI オプション名では、大文字と小文字は区別されません。 Ruby options are specified as symbols (though in Client options use indifferent access).
定数の概要の削減
- URI_OPTION_MAP =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
変換戦略への URI オプション パラメーターのマップを保存するためのハッシュ
{}
- URI_OPTION_CANONIAL_NAMES =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
小文字から標準の URI オプション名へのマップを返します。
{}
Loggableに含まれる定数
インスタンス属性の概要を折りたたむ
-
#options ⇒ Hash
readOnly
private
オプション。
クラスメソッドの概要を折りたたむ
-
。uri_option(uri_key、name、**余計) ⇒ オブジェクト
private
URI_OPTION_MAP にMongoDB URI オプションを登録するための単純な内部 DSL。
インスタンス メソッドの概要を折りたたむ
-
#add_uri_option (key, value, uri_options) = オブジェクト
private
URI オプション ハッシュに オプションを追加します。
-
#initialize(**opts) ⇒ OptionsMapper
コンストラクター
private
オプション マッパーをインスタンス化します。
-
# Ruby_to_smc (opts) = ハッシュ
private
提供されたRubyオプションを「標準化された MongoClient オプション」に変換します。
-
# Ruby_to_string (opts) = ハッシュ
private
指定された Ruby オプションを URI string での表現に変換します。
- #smc_to_ Ruby (opts) = オブジェクト private
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 デフォルト 初期化(**ops) @options = ops end |
インスタンス属性の詳細
オプション=ハッシュ(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
オプションを返します。
48 49 50 |
# ファイル 'lib/mongo/uri/options_mapper.rb' 行 48 デフォルト @options end |
クラスメソッドの詳細
。uri_option(uri_key、name、**余計) ⇒ オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
URI_OPTION_MAP にMongoDB URI オプションを登録するための単純な内部 DSL。
205 206 207 208 |
# ファイル 'lib/mongo/uri/options_mapper.rb' 行 205 デフォルト 自己.uri_option(uri_key, name, **余計な) URI_OPTION_MAP[uri_key.ダウンケース] = { name: name }.update(余計な) URI_OPTION_CANONIAL_NAMES[uri_key.ダウンケース] = uri_key end |
インスタンス メソッドの詳細
#add_uri_option (key, value, 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 デフォルト add_uri_option(キー, 価値, ) 戦略 = URI_OPTION_MAP[キー.ダウンケース] 場合 戦略.nil? log_警告(「 URI ` #{ @string } で サポートされていない URI オプション 「 #{ key } 」は 無視されます 。) return end グループ = 戦略[:group] ターゲット = 場合 グループ [グループ] || {} else end 価値 = apply_transform(キー, 価値, 戦略[:type]) # 場合によっては、ここで処理している値は nil になる場合があります。 # 読み込み設定(read preference)タグまたは認証メカニズム プロパティと、次のすべて 内の # データは無効です。 そのようなオプションは無視されます。 merge_uri_option(ターゲット, 価値, 戦略[:name]) ただし、 価値.nil? return ただし、 グループ & & !ターゲット.空の場合 & & !.key?(グループ) [グループ] = ターゲット 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 デフォルト Ruby_to_smc(ops) rv = {} URI_OPTION_MAP.各 行う |uri_key, スペック| 場合 スペック[:group] v = ops[スペック[:group]] v &= v[スペック[:name]] else v = ops[スペック[:name]] end 次へ 場合 v.nil? 場合 タイプ = スペック[:type] v = 送信(" revert_ #{ type } ", v) end 標準_キー = URI_OPTION_CANONIAL_NAMES[uri_key] 発生 ArgumentError, "オプション#{ uri_key }は不明です" ただし、 標準_キー rv[標準_キー] = v end デフォルトが true であるオプションの場合、true の場合は値を削除します。 %w[retryReads retryWrites].各 行う |k| rv.削除(k) 場合 rv[k] end デフォルトのメカニズムの場合、$external の場合は認証ソースを削除します その認証ソースが必要な場合には、 (または が必要です)。 rv.削除('authSource') 場合 %w[MongoDB-AWS].include?(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 デフォルト Ruby_to_string(ops) rv = {} URI_OPTION_MAP.各 行う |uri_key, スペック| 場合 スペック[:group] v = ops[スペック[:group]] v &= v[スペック[:name]] else v = ops[スペック[:name]] end 次へ 場合 v.nil? 場合 タイプ = スペック[:type] v = 送信(" stringify_ #{ type } ", v) end 標準_キー = URI_OPTION_CANONIAL_NAMES[uri_key] 発生 ArgumentError, "オプション#{ uri_key }は不明です" ただし、 標準_キー rv[標準_キー] = v end デフォルトが true であるオプションの場合、true の場合は値を削除します。 %w[retryReads retryWrites].各 行う |k| rv.削除(k) 場合 rv[k] end デフォルトのメカニズムの場合、$external の場合は認証ソースを削除します その認証ソースが必要な場合には、 (または が必要です)。 rv.削除('authSource') 場合 %w[MongoDB-AWS].include?(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 デフォルト smc_to_ruby(ops) = {} ops.各 行う |キー, 価値| 戦略 = URI_OPTION_MAP[キー.ダウンケース] 場合 戦略.nil? log_警告(「 URI ` #{ @string } で サポートされていない URI オプション 「 #{ key } 」は 無視されます 。) return end グループ = 戦略[:group] ターゲット = 場合 グループ [グループ] || {} else end 価値 = apply_transform(キー, 価値, 戦略[:type]) # 場合によっては、ここで処理している値は nil になる場合があります。 # 読み込み設定(read preference)タグまたは認証メカニズム プロパティと、次のすべて 内の # データは無効です。 そのようなオプションは無視されます。 merge_uri_option(ターゲット, 価値, 戦略[:name]) ただし、 価値.nil? [グループ] = ターゲット 場合 グループ & & !ターゲット.空の場合 & & !.key?(グループ) end end |