Clase: Mongo::URI::OptionsMapper Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::URI::OptionsMapper
- Incluye:
- Registrable
- Definido en:
- lib/mongo/uri/opciones_mapper.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Realiza la asignación entre las opciones de URI y las opciones de Ruby.
Esta clase contiene:
-
La asignación que define cómo las opciones de URI se convierten en opciones de Ruby.
-
La asignación de nombres de opciones de URI en mayúsculas y minúsculas a nombres de opciones de URI en mayúsculas y minúsculas canónicas.
-
Métodos para convertir valores de opciones de URI a valores de opciones de Ruby (métodos convert_*). Generalmente, estos métodos emiten una advertencia y devuelven nulo cuando la entrada no es válida.
-
Métodos para convertir valores de opciones de Ruby a opciones estandarizadas de MongoClient (métodos revert_*). Estos asumen que la entrada es válida y generalmente no realizan validación.
Los nombres de las opciones URI no distinguen entre mayúsculas y minúsculas. Las opciones de Ruby se especifican como símbolos (aunque en las opciones de cliente se usa el acceso indiferente).
Resumen constante
Constantes incluidas desde Loggable
Colapso delresumen de atributos de instancia
-
#options ⇒ Hash
solo lectura
privada
Las opciones.
Colapso delresumen del método de clase
-
.uri_option(uri_key, nombre, **extra) ⇒ Objeto
privada
Dsl interno simple para registrar una opción de URI de MongoDB en URI_OPTION_MAP.
Colapso del resumen del método de instancia
-
#add_uri_option(clave, valor, uri_options) ⇒ Objeto
privada
Agrega una opción al hash de opciones de URI.
-
#initialize(**opts) ⇒ OptionsMapper
constructor
privada
Instancía el asignador de opciones.
-
#ruby_to_smc(opciones) ⇒ Hash
privada
Convierte las opciones de Ruby proporcionadas en “opciones estandarizadas de MongoClient”.
-
#ruby_to_string(opciones) ⇒ Hash
privada
Convierte las opciones de Ruby proporcionadas a su representación en una cadena URI.
- #smc_to_ruby(opciones) ⇒ Objeto privada
Métodos incluidos en Loggable
#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) @opciones = 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 @opciones end |
Detalles del método de clase
.uri_option(uri_key, nombre, **extra) ⇒ 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.
Dsl interno simple para registrar una opción de URI de MongoDB en URI_OPTION_MAP.
260 261 262 263 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 260 def yo.opción uri(clave uri, Nombre, **adicional) URI_OPTION_MAP[clave uri.mayúsculas y minúsculas] = { nombre: Nombre }.update(adicional) NOMBRES CANÓNICOS DE OPCIONES DE URI[clave uri.mayúsculas y minúsculas] = clave uri end |
Detalles del método de instancia
#add_uri_option(clave, valor, uri_options) ⇒ 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.
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 opción_add_uri(clave, valor, ) estrategia = URI_OPTION_MAP[clave.mayúsculas y minúsculas] Si estrategia.nil? advertencia de registro("Opciónde URI no compatible' #{key} ' en la URI' #{@string} '. Se ignorará.") return end group = estrategia[:grupo] destino = Si group [group] || {} else end valor = apply_transform(clave, valor, estrategia[:tipo]) # A veces el valor aquí sería nulo, por ejemplo, si estamos procesando # leer etiquetas de preferencia o propiedades del mecanismo de autenticación y todas las # Los datos dentro no son válidos. Ignore estas opciones. a no ser que valor.nil? opción de fusión de uri(destino, valor, estrategia[:nombre]) end Si group && !destino.¿vacío? && !.key?(group) [group] = destino end end |
#ruby_to_smc(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 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 rubí_a_smc(opta) rv = {} URI_OPTION_MAP.cada hacer |clave uri, 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 no ser que v.nil? Si tipo = especulación[:tipo] v = Enviar("revertir_#{tipo}", v) end clave canónica = NOMBRES CANÓNICOS DE OPCIONES DE URI[clave uri] a no ser que clave canónica propagar ArgumentError, "Laopción #{uri_key} no esconocida" end rv[clave canónica] = v end end # Para las opciones que tienen como valor predeterminado verdadero, elimine el valor si es verdadero. %w(retryReads retryWrites).cada hacer |k| Si rv[k] rv.borrar(k) end end # Eliminar la fuente de autenticación cuando sea externa para los mecanismos predeterminados # (o requerir) esa fuente de autenticación. Si %w(MONGODB-AWS).¿incluir?(rv['mecanismo de autenticación']) && rv['authSource'] == ' $externo ' rv.borrar('authSource') end # ssl y tls son alias, elimine los 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 |clave uri, 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 no ser que v.nil? Si tipo = especulación[:tipo] v = Enviar("stringify_#{tipo}", v) end clave canónica = NOMBRES CANÓNICOS DE OPCIONES DE URI[clave uri] a no ser que clave canónica propagar ArgumentError, "Laopción #{uri_key} no esconocida" end rv[clave canónica] = v end end # Para las opciones que tienen como valor predeterminado verdadero, elimine el valor si es verdadero. %w(retryReads retryWrites).cada hacer |k| Si rv[k] rv.borrar(k) end end # Eliminar la fuente de autenticación cuando sea externa para los mecanismos predeterminados # (o requerir) esa fuente de autenticación. Si %w(MONGODB-AWS).¿incluir?(rv['mecanismo de autenticación']) && rv['authSource'] == ' $externo ' rv.borrar('authSource') end # ssl y tls son alias, elimine los 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 |clave, valor| estrategia = URI_OPTION_MAP[clave.mayúsculas y minúsculas] Si estrategia.nil? advertencia de registro("Opciónde URI no compatible' #{key} ' en la URI' #{@string} '. Se ignorará.") return end group = estrategia[:grupo] destino = Si group [group] || {} else end valor = apply_transform(clave, valor, estrategia[:tipo]) # A veces el valor aquí sería nulo, por ejemplo, si estamos procesando # leer etiquetas de preferencia o propiedades del mecanismo de autenticación y todas las # Los datos dentro no son válidos. Ignore estas opciones. a no ser que valor.nil? opción de fusión de uri(destino, valor, estrategia[:nombre]) end Si group && !destino.¿vacío? && !.key?(group) [group] = destino end end end |