Classe: Mongo::URI::OptionsMapper Private
- Herda:
-
Objeto
- Objeto
- Mongo::URI::OptionsMapper
- Inclui:
- Logável
- Definido em:
- lib/mongo/uri/options_mapper.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Executa mapeamento entre opções de URI e opções de Ruby.
Esta classe contém:
-
O mapeamento definindo como as opções de URI são convertidas em opções de Ruby.
-
O mapeamento de nomes de opções de URI em minúsculas para nomes de opções de URI em maiúsculas e minúsculas canônicas.
-
Métodos para executar a conversão de valores de opção URI para valores de opção Ruby (os métodos convert_*). Estes geralmente avisam e retornam nulo quando a entrada fornecida é inválida.
-
Métodos para realizar a conversão de valores de opção Ruby em opções padronizadas do MongoClient (métodos revert_*). Eles pressupõem que a entrada é válida e geralmente não realizam validação.
Os nomes das opções de URI não diferenciam maiúsculas de minúsculas. As opções Ruby são especificadas como símbolos (embora nas opções do cliente usem acesso indiferente).
Resumo constante
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#opções ➤ Hash
Somente leitura
privado
As opções.
Recolhimento do Resumo do método de instância
-
#add_uri_option(key, value, uri_options) ➤ Object
privado
Adiciona uma opção ao hash de opções de uri.
-
#initialize(**opts) ⇒ OptionsMapper
construtor
privado
Instancia o mapeador de opções.
-
#ruby_to_smc(opts) ➤ Hash
privado
Converte as opções Ruby fornecidas em "opções padronizadas do MongoClient".
-
#ruby_to_string(opts) ➤ Hash
privado
Converte as opções Ruby fornecidas para sua representação em uma string URI.
- #smc_to_ruby(opts) ➤ Objeto privado
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#initialize(**opts) ⇒ OptionsMapper
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Instancia o mapeador de opções.
46 47 48 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 46 def inicializar(**opciona) @opções = opciona end |
Detalhes do atributo da instância
#opções ➤ Hash (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna as opções.
51 52 53 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 51 def @opções end |
Detalhes do método de instância
#add_uri_option(key, value, uri_options) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Adiciona uma opção ao hash de opções de uri.
Acquires a target for the option based on group.
Transforms the value.
Merges the option into the target.
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 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 62 def add_uri_option(chave, valor, ) estratégia = URI_OPTION_MAP[chave.downcase] se estratégia.nada? log_service("Opção de URI não suportada '#{key}' no URI '#{@string}'. Ela será ignorada.") Método end grupo, grupo = estratégia[:group] Alvo = se grupo, grupo [grupo, grupo] || {} mais end valor = apply_transform(chave, valor, estratégia[:type]) # Às vezes, o valor aqui seria nulo, por exemplo, se estivermos processando # tags de preferência de leitura ou propriedades do mecanismo de autenticação e todos os # dados são inválidos. Ignore essas opções. a menos que valor.nada? mesclar_uri_option(Alvo, valor, estratégia[:name]) end se grupo, grupo && !Alvo.vazio? && !.chave?(grupo, grupo) [grupo, grupo] = Alvo end end |
#ruby_to_smc(opts) ➤ Hash
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Converte as opções Ruby fornecidas em "opções padronizadas do MongoClient".
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 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 126 def ruby_to_smc(opciona) rv = {} URI_OPTION_MAP.cada fazer |uri_key, especificações| se especificações[:group] v = opciona[especificações[:group]] v = v && v[especificações[:name]] mais v = opciona[especificações[:name]] end a menos que v.nada? se type = especificações[:type] v = enviar("revert_#{type}", v) end canonical_key = URI_OPTION_CANONical_NAMES[uri_key] a menos que canonical_key aumentar ArgumentError, "A opção #{uri_key} não é conhecida" end rv[canonical_key] = v end end # Para opções que têm como padrão verdadeiro, remova o valor se for verdadeiro. %w(retryReads retryWrites).cada fazer |k| se rv[k] rv.excluir(k) end end # Remover a fonte de autenticação quando for $external para mecanismos padrão # (ou exigir) essa fonte de autenticação. se %w(MONGODB-AWS).incluir?(rv['authMechanism']) && rv['authSource'] == '$external' rv.excluir('authSource') end # ssl e tls são aliases, remova os ssl rv.excluir('ssl') #TODO remover authSource se for o mesmo do banco de dados, # requer este método para conhecer o banco de dados especificado no cliente. rv end |
#ruby_to_string(opts) ➤ Hash
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Converte as opções Ruby fornecidas para sua representação em uma string URI.
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 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 169 def ruby_to_string(opciona) rv = {} URI_OPTION_MAP.cada fazer |uri_key, especificações| se especificações[:group] v = opciona[especificações[:group]] v = v && v[especificações[:name]] mais v = opciona[especificações[:name]] end a menos que v.nada? se type = especificações[:type] v = enviar("stringify_#{type}", v) end canonical_key = URI_OPTION_CANONical_NAMES[uri_key] a menos que canonical_key aumentar ArgumentError, "A opção #{uri_key} não é conhecida" end rv[canonical_key] = v end end # Para opções que têm como padrão verdadeiro, remova o valor se for verdadeiro. %w(retryReads retryWrites).cada fazer |k| se rv[k] rv.excluir(k) end end # Remover a fonte de autenticação quando for $external para mecanismos padrão # (ou exigir) essa fonte de autenticação. se %w(MONGODB-AWS).incluir?(rv['authMechanism']) && rv['authSource'] == '$external' rv.excluir('authSource') end # ssl e tls são aliases, remova os ssl rv.excluir('ssl') #TODO remover authSource se for o mesmo do banco de dados, # requer este método para conhecer o banco de dados especificado no cliente. rv end |
#smc_to_ruby(opts) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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 |
# Arquivo 'lib/mongo/uri/options_mapper.rb', linha 88 def smc_to_ruby(opciona) = {} opciona.cada fazer |chave, valor| estratégia = URI_OPTION_MAP[chave.downcase] se estratégia.nada? log_service("Opção de URI não suportada '#{key}' no URI '#{@string}'. Ela será ignorada.") Método end grupo, grupo = estratégia[:group] Alvo = se grupo, grupo [grupo, grupo] || {} mais end valor = apply_transform(chave, valor, estratégia[:type]) # Às vezes, o valor aqui seria nulo, por exemplo, se estivermos processando # tags de preferência de leitura ou propriedades do mecanismo de autenticação e todos os # dados são inválidos. Ignore essas opções. a menos que valor.nada? mesclar_uri_option(Alvo, valor, estratégia[:name]) end se grupo, grupo && !Alvo.vazio? && !.chave?(grupo, grupo) [grupo, grupo] = Alvo end end end |