Clase: Mongo::URI::OptionsMapper Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
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).

Desde:

  • 2.0.0

Resumen constante

Constantes incluidas desde Loggable

Registrable::PREFIX

Colapso delresumen de atributos de instancia

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

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.

Parámetros:

  • opta (Hash)

    un conjunto personalizable de opciones

Opciones Hash (**opts):

  • :logger (Registrador)

    Un registrador personalizado para utilizar.

Desde:

  • 2.0.0



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

#opcionesHash (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.

Devuelve:

  • (Hash)

    Las opciones.

Desde:

  • 2.0.0



51
52
53
# Archivo 'lib/mongo/uri/options_mapper.rb', línea 51

def opciones
  @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.

Parámetros:

  • clave uri (Cadena) -

    La opción URI de MongoDB para registrarse.

  • Nombre ( Símbolo) -

    El nombre de la opción en el controlador.

  • adicional (Hash)

    Opciones adicionales.

    • :group [ Símbolo ] Hash anidado donde irá la opción.

    • :type [ Símbolo ] Nombre de la función para transformar el valor.

Desde:

  • 2.0.0



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.

Parámetros:

  • clave (Cadena) -

    Nombre de la opción URI.

  • valor (Cadena) -

    El valor de la opción.

  • opciones_uri (Hash)

    El objetivo de la opción base.

Desde:

  • 2.0.0



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, opciones_uri)
  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
    opciones_uri[group] || {}
  else
    opciones_uri
  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? && !opciones_uri.key?(group)
    opciones_uri[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”.

Parámetros:

  • opta (Hash)

    Opciones de Ruby para convertir.

Devuelve:

  • (Hash)

    Opciones estandarizadas de MongoClient.

Desde:

  • 2.0.0



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.

Parámetros:

  • opta (Hash)

    Opciones de Ruby para convertir.

Devuelve:

  • (Hash)

    Hash de cadena URI.

Desde:

  • 2.0.0



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.

Desde:

  • 2.0.0



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)
  opciones_uri = {}

  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
      opciones_uri[group] || {}
    else
      opciones_uri
    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? && !opciones_uri.key?(group)
      opciones_uri[group] = destino
    end
  end

  opciones_uri
end