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:
- El mapeo que define cómo se convierten las opciones URI a opciones 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 de constantes colapsar
- URI_OPTION_MAP =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Hash para almacenar el mapa de los parámetros de opciones URI a las estrategias de conversión
{}
- URI_OPTION_CANONICAL_NAMES =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Devuelve un mapa de los nombres de las opciones URI en minúsculas a los nombres canónicos.
{}
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(key, value, uri_options) ⇒ Object
privado
Agrega una opción al hash de opciones de URI.
-
#initialize(**opts) ⇒ OptionsMapper
constructor
privado
Instancia el mapeador de opciones.
-
#ruby_to_smc(opts) ⇒ Hash
privado
Convierte las opciones de Ruby proporcionadas en «opciones de MongoClient estandarizadas».
-
#ruby_to_string(opts) ⇒ Hash
privado
Convierte las opciones Ruby proporcionadas a su representación en una string 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Instancia el mapeador de opciones.
43 44 45 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 43 def inicializar(**opciones) @options = opciones end |
Detalles de atributo de instancias
#opciones ⇒ Hash (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve las opciones.
48 49 50 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 48 def @options end |
Detalles del método de clase
.uri_option(uri_key, nombre, **extra) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
205 206 207 208 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 205 def sí mismo.uri_option(uri_key, Nombre, **extra) URI_OPTION_MAP[uri_key.minúscula] = { nombre: Nombre }.update(extra) 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 es parte de una API privada. Se debe evitar el uso de este método 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.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 59 def add_uri_option(llave, Valor, ) estrategia = URI_OPTION_MAP[llave.minúscula] si estrategia.nil? log_warn("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. merge_uri_option(Objetivo, Valor, estrategia[nombre]) a menos que Valor.nil? return a menos que group && !Objetivo.¿vacío? && !.key?(group) [group] = Objetivo end |
#ruby_to_smc(opts) ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Convierte las opciones de Ruby proporcionadas en «opciones de MongoClient estandarizadas».
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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 117 def ruby_to_smc(opciones) rv = {} URI_OPTION_MAP.cada hacer |uri_key, especificación| si especificación[:grupo] v = opciones[especificación[:grupo]] v &&= v[especificación[nombre]] else v = opciones[especificación[nombre]] end Next si v.nil? si tipo = especificación[Tipo] v = enviar("revert_#{type}", v) end canonical_key = NOMBRES_CANÓNICOS_OPCIÓN_URI[uri_key] propagar ArgumentError, "Opción #{uri_key} no es conocida" a menos que canonical_key rv[canonical_key] = v end # Para las opciones que son por defecto verdaderas, remueve el valor si es verdadero. %w[retryReads retryWrites].cada hacer |k| rv.borrar(k) si rv[k] end # Remover la fuente de autenticación cuando sea $external para mecanismos que estén por defecto # (o require) esa fuente de autenticación. rv.borrar('authSource') si %w[MONGODB-AWS].incluir?(rv['authMechanism']) && rv['authSource'] == '$external' # 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_a_cadena(opts) ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Convierte las opciones Ruby proporcionadas a su representación en una string URI.
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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 155 def ruby_to_string(opciones) rv = {} URI_OPTION_MAP.cada hacer |uri_key, especificación| si especificación[:grupo] v = opciones[especificación[:grupo]] v &&= v[especificación[nombre]] else v = opciones[especificación[nombre]] end Next si v.nil? si tipo = especificación[Tipo] v = enviar("stringify_#{tipo}", v) end canonical_key = NOMBRES_CANÓNICOS_OPCIÓN_URI[uri_key] propagar ArgumentError, "Opción #{uri_key} no es conocida" a menos que canonical_key rv[canonical_key] = v end # Para las opciones que son por defecto verdaderas, remueve el valor si es verdadero. %w[retryReads retryWrites].cada hacer |k| rv.borrar(k) si rv[k] end # Remover la fuente de autenticación cuando sea $external para mecanismos que estén por defecto # (o require) esa fuente de autenticación. rv.borrar('authSource') si %w[MONGODB-AWS].incluir?(rv['authMechanism']) && rv['authSource'] == '$external' # 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(opts) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
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 |
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 83 def smc_to_ruby(opciones) = {} opciones.cada hacer |llave, Valor| estrategia = URI_OPTION_MAP[llave.minúscula] si estrategia.nil? log_warn("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. merge_uri_option(Objetivo, Valor, estrategia[nombre]) a menos que Valor.nil? [group] = Objetivo si group && !Objetivo.¿vacío? && !.key?(group) end end |