Clase: Mongo::ClusterTime Privado
- Hereda:
-
BSON::Documento
- Objeto
- BSON::Documento
- Mongo::ClusterTime
- Definido en:
- lib/mongo/cluster_time.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.
ClusterTime encapsula el almacenamiento y las operaciones de tiempo de clúster.
La operación principal que se realiza en el tiempo del clúster es avanzar: dado otro tiempo del clúster, elija el más reciente de los dos.
Esta clase proporciona métodos de comparación que se utilizan para determinar qué hora de clúster es más nueva y brinda diagnósticos en modo pelusa cuando falta la hora real en un documento de hora de clúster.
Definido bajo Namespace
Modules: Consumidor
Resumen del método de clase colapsar
-
.[](doc) ⇒ Objeto
privado
Convierte un BSON::Document a ClusterTime.
Resumen del método de instancia colapsar
- #<(otros) ⇒ Objeto privado
- #<=(other) ⇒ Object privado
-
#<=>(otro) ⇒ Objeto
privado
Compara dos instancias de ClusterTime comparando sus marcas de tiempo.
-
#==(otro) ⇒ Objeto
privado
Compara dos instancias de ClusterTime comparando sus marcas de tiempo.
- #>(otro) ⇒ Objeto privado
-
#>=(otro) ⇒ Object
privado
Las versiones más antiguas de Ruby no implementan otros operadores lógicos a través de <=>.
-
#advance(otro) ⇒ objeto
privado
Avanza el tiempo del clúster en el receptor al tiempo del clúster en
other. -
#initialize(elements = nil) ⇒ ClusterTime
constructor
privado
Una nueva instancia de ClusterTime.
Detalles del constructor
#initialize(elements = nil) ⇒ ClusterTime
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 una nueva instancia de ClusterTime.
30 31 32 33 34 35 36 |
# Archivo 'lib/mongo/cluster_time.rb', línea 30 def inicializar(elementos = nulo) super si Lint.¿habilitado? && !sí mismo['clusterTime'] propagar ArgumentError, 'Creando un tiempo de clúster sin campo clusterTime' end end |
Detalles del método de clase
.[](doc) ⇒ 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.
Convierte un BSON::Document a ClusterTime.
doc puede ser nil, en cuyo caso se devuelve nil.
97 98 99 100 101 102 103 |
# Archivo 'lib/mongo/cluster_time.rb', línea 97 def [](doc) si doc.nil? || doc.is_a?(Tiempo de clúster) doc else Tiempo de clúster.Nuevo(doc) end end |
Detalles del método de instancia
#<(otro) ⇒ 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.
78 79 80 |
# Archivo 'lib/mongo/cluster_time.rb', línea 78 def <(Otros) (sí mismo <=> Otros) == -1 end |
#<=(otro) ⇒ 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.
75 76 77 |
# Archivo 'lib/mongo/cluster_time.rb', línea 75 def <=(Otros) (sí mismo <=> Otros) != 1 end |
#<=>(otro) ⇒ 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.
Compara dos instancias de ClusterTime comparando sus marcas de tiempo.
56 57 58 59 60 61 62 63 64 |
# Archivo 'lib/mongo/cluster_time.rb', línea 56 def <=>(Otros) si sí mismo['clusterTime'] && Otros['clusterTime'] sí mismo['clusterTime'] <=> Otros['clusterTime'] elsif !sí mismo['clusterTime'] propagar ArgumentError, "No se pueden comparar los tiempos de clúster cuando al receptor le falta la clave de clusterTime: #{inspeccionar}" else Otros['clusterTime'] propagar ArgumentError, "No se pueden comparar los tiempos de clúster cuando a otro le falta la clave clusterTime: #{otro.inspeccionar}" end end |
#==(otra) ⇒ 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.
Compara dos instancias de ClusterTime comparando sus marcas de tiempo.
83 84 85 86 87 88 89 90 91 |
# Archivo 'lib/mongo/cluster_time.rb', línea 83 def ==(Otros) si sí mismo['clusterTime'] && Otros['clusterTime'] && sí mismo['clusterTime'] == Otros['clusterTime'] entonces true else false end end |
#>(otro) ⇒ 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.
72 73 74 |
# Archivo 'lib/mongo/cluster_time.rb', línea 72 def >(Otros) (sí mismo <=> Otros) == 1 end |
#>=(otro) ⇒ 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.
Las versiones antiguas de Ruby no implementan otros operadores lógicos a través de <=>. TODO revisar si estos métodos son necesarios cuando jira.mongodb.org/browse/RUBY-1622 esté implementado.
69 70 71 |
# Archivo 'lib/mongo/cluster_time.rb', línea 69 def >=(Otros) (sí mismo <=> Otros) != -1 end |
#avanzar(otro) ⇒ 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.
Avanza el tiempo del clúster en el receptor al tiempo del clúster en other.
other puede ser nulo o estar detrás del tiempo del clúster en el receptor; en esos casos, el receptor se devuelve sin modificaciones. Si el receptor está adelantado, se devuelve un nuevo objeto ClusterTime.
El valor de retorno es nulo o una instancia de ClusterTime.
45 46 47 48 49 50 51 52 53 |
# Archivo 'lib/mongo/cluster_time.rb', línea 45 def avanzar(Otros) si sí mismo['clusterTime'] && Otros['clusterTime'] && Otros['clusterTime'] > sí mismo['clusterTime'] entonces Tiempo de clúster[Otros] else sí mismo end end |