Clase: Mongo::URI::OptionsMapper Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::URI::OptionsMapper
- Incluye:
- Registrable
- Definido en:
- lib/mongo/uri/options_mapper.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Realiza la asignación entre opciones de URI y opciones de Ruby.
Esta clase contiene:
-
La asignación que define cómo las opciones de URI se convierten en opciones de Ruby.
-
El mapeo de los nombres de opciones URI en minúsculas a los nombres de opciones URI en mayúsculas canónicos.
-
Métodos para realizar la conversión de valores de opciones URI a valores de opciones Ruby (los métodos convert_*). Por lo general, estos advierten y devuelven nil cuando la entrada proporcionada es inválida.
-
Métodos para realizar la conversión de valores de opciones de Ruby a opciones estandarizadas de MongoClient (métodos revert_*). Estos suponen que la entrada es válida y, por lo general, no realizan validación.
Los nombres de las opciones URI no distinguen mayúsculas de minúsculas. Las opciones de Ruby se especifican como símbolos (aunque en las opciones de cliente se usa acceso indiferente).
Resumen constante
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
-
#options ⇒ Hash
Solo lectura
privado
Las opciones.
Resumen del método de clase colapsar
-
.uri_option(uri_key, name, **extra) ⇒ Object
privado
Pequeño DSL interno para registrar una opción de URI de MongoDB en el URI_OPTION_MAP.
Resumen del método de instancia colapsar
-
#add_uri_option(clave, valor, uri_options) ⇒ Objeto
privado
Agrega una opción al hash de opciones de URI.
-
#initialize(**opts) ⇒ OptionsMapper
constructor
privado
Instancía el asignador de opciones.
-
#ruby_to_smc(opts) ⇒ Hash
privado
Convierte las opciones de Ruby proporcionadas en "opciones estandarizadas de MongoClient".
-
#ruby_to_string(opts) ⇒ Hash
privado
Convierte las opciones de Ruby proporcionadas a su representación en una cadena URI.
- #smc_to_ruby(opts) ⇒ Objeto privado
Métodos incluidos desde Registrable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del constructor
#initialize(**opts) ⇒ OptionsMapper
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Instancía el asignador de opciones.
46 47 48 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 46 def inicializar(**opta) @options = opta end |
Detalles de los atributos de instancia
#opciones ⇒ Hash (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve las opciones.
51 52 53 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 51 def @options end |
Detalles del método de clase
.uri_option(uri_key, nombre, **extra) ⇒ Object
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Pequeño DSL interno para registrar una opción de URI de MongoDB en el URI_OPTION_MAP.
260 261 262 263 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 260 def sí mismo.opción uri(uri_key, Nombre, **adicional) URI_OPTION_MAP[uri_key.minúscula] = { nombre: Nombre }.update(adicional) NOMBRES_CANÓNICOS_OPCIÓN_URI[uri_key.minúscula] = uri_key end |
Detalles del método de instancia
#add_uri_option(clave, valor, uri_options) ⇒ Object
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Agrega una opción al hash de opciones 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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 62 def add_uri_option(llave, Valor, ) estrategia = URI_OPTION_MAP[llave.minúscula] si estrategia.nil? advertencia de registro("Opción de URI no soportada '#{key}' en URI '#{@string}'. Será ignorada.") return end group = estrategia[:grupo] Objetivo = si group [group] || {} else end Valor = apply_transform(llave, Valor, estrategia[Tipo]) # A veces el valor aquí podría ser nulo, por ejemplo si estamos procesamiento # leer las etiquetas de preferencia de lectura o las propiedades del mecanismo de autenticación y todas las # los datos son inválidos. Ignora tales opciones. a menos que Valor.nil? opción de fusión de uri(Objetivo, Valor, estrategia[nombre]) end si group && !Objetivo.¿vacío? && !.key?(group) [group] = Objetivo end end |
#ruby_to_smc(opts) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Convierte las opciones de Ruby proporcionadas en "opciones estandarizadas de 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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 126 def ruby_to_smc(opta) rv = {} URI_OPTION_MAP.cada hacer |uri_key, especulación| si especulación[:grupo] v = opta[especulación[:grupo]] v = v && v[especulación[nombre]] else v = opta[especulación[nombre]] end a menos que v.nil? si tipo = especulación[Tipo] v = enviar("revert_#{type}", v) end canonical_key = NOMBRES_CANÓNICOS_OPCIÓN_URI[uri_key] a menos que canonical_key propagar ArgumentError, "Opción #{uri_key} no es conocida" end rv[canonical_key] = v end end # Para las opciones que son por defecto verdaderas, remueve el valor si es verdadero. %w(retryReads retryWrites).cada hacer |k| si rv[k] rv.borrar(k) end end # Remover la fuente de autenticación cuando sea $external para mecanismos que estén por defecto # (o require) esa fuente de autenticación. si %w(MONGODB-AWS).incluir?(rv['authMechanism']) && rv['authSource'] == '$external' rv.borrar('authSource') end # ssl y tls son alias, remueva los de ssl rv.borrar('ssl') # TODO remover authSource si es igual a la base de datos, # requiere este método para conocer la base de datos especificada en el cliente. rv end |
#ruby_to_string(opciones) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Convierte las opciones de Ruby proporcionadas a su representación en una cadena 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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 169 def ruby_to_string(opta) rv = {} URI_OPTION_MAP.cada hacer |uri_key, especulación| si especulación[:grupo] v = opta[especulación[:grupo]] v = v && v[especulación[nombre]] else v = opta[especulación[nombre]] end a menos que v.nil? si tipo = especulación[Tipo] v = enviar("stringify_#{tipo}", v) end canonical_key = NOMBRES_CANÓNICOS_OPCIÓN_URI[uri_key] a menos que canonical_key propagar ArgumentError, "Opción #{uri_key} no es conocida" end rv[canonical_key] = v end end # Para las opciones que son por defecto verdaderas, remueve el valor si es verdadero. %w(retryReads retryWrites).cada hacer |k| si rv[k] rv.borrar(k) end end # Remover la fuente de autenticación cuando sea $external para mecanismos que estén por defecto # (o require) esa fuente de autenticación. si %w(MONGODB-AWS).incluir?(rv['authMechanism']) && rv['authSource'] == '$external' rv.borrar('authSource') end # ssl y tls son alias, remueva los de ssl rv.borrar('ssl') # TODO remover authSource si es igual a la base de datos, # requiere este método para conocer la base de datos especificada en el cliente. rv end |
#smc_to_ruby(opciones) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el 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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 88 def smc_to_ruby(opta) = {} opta.cada hacer |llave, Valor| estrategia = URI_OPTION_MAP[llave.minúscula] si estrategia.nil? advertencia de registro("Opción de URI no soportada '#{key}' en URI '#{@string}'. Será ignorada.") return end group = estrategia[:grupo] Objetivo = si group [group] || {} else end Valor = apply_transform(llave, Valor, estrategia[Tipo]) # A veces el valor aquí podría ser nulo, por ejemplo si estamos procesamiento # leer las etiquetas de preferencia de lectura o las propiedades del mecanismo de autenticación y todas las # los datos son inválidos. Ignora tales opciones. a menos que Valor.nil? opción de fusión de uri(Objetivo, Valor, estrategia[nombre]) end si group && !Objetivo.¿vacío? && !.key?(group) [group] = Objetivo end end end |