class BSON::Timestamp

@since 2.0.0
@see bsonspec.org/#/specification<br><br>Represents a timestamp type, which is predominately used for sharding.

def self.from_bson(buffer, **options)

Other tags:
    Since: - 2.0.0

Other tags:
    See: http://bsonspec.org/#/specification -

Returns:
  • (Timestamp) - The decoded timestamp.

Options Hash: (**options)
  • :mode (nil | :bson) -- Decoding mode to use.

Parameters:
  • buffer (ByteBuffer) -- The byte buffer.
def self.from_bson(buffer, **options)
  increment = buffer.get_uint32
  seconds = buffer.get_uint32
  new(seconds, increment)
end

def <=>(other)

Other tags:
    Since: - 4.3.0

Returns:
  • (true, false) - The result of the comparison.

Parameters:
  • other (Object) -- The object to compare against.

Other tags:
    Example: Compare the timestamp. -
def <=>(other)
  raise ArgumentError.new(COMPARISON_ERROR_MESSAGE % other.class) unless other.is_a?(Timestamp)
  return 0 if self == other
  a = [ seconds, increment ]
  b = [ other.seconds, other.increment ]
  [ a, b ].sort[0] == a ? -1 : 1
end

def ==(other)

Other tags:
    Since: - 2.0.0

Returns:
  • (true, false) - If the objects are equal.

Parameters:
  • other (Object) -- The object to compare against.

Other tags:
    Example: Check the timestamp equality. -
def ==(other)
  return false unless other.is_a?(Timestamp)
  seconds == other.seconds && increment == other.increment
end

def as_extended_json(**options)

Returns:
  • (Hash) - The extended json representation.

Options Hash: (**opts)
  • :mode (nil | :relaxed | :legacy) -- Serialization mode
def as_extended_json(**options)
  { "$timestamp" => { "t" => seconds, "i" => increment } }
end

def as_json(*args)

Deprecated:
  • Use as_extended_json instead.

Other tags:
    Since: - 2.0.0

Returns:
  • (Hash) - The timestamp as a JSON hash.

Other tags:
    Example: Get the timestamp as a JSON hash. -
def as_json(*args)
  as_extended_json
end

def initialize(seconds, increment)

Other tags:
    Since: - 2.0.0

Parameters:
  • increment (Integer) -- The increment value.
  • seconds (Integer) -- The number of seconds.

Other tags:
    Example: Instantiate the timestamp. -
def initialize(seconds, increment)
  @seconds, @increment = seconds, increment
end

def to_bson(buffer = ByteBuffer.new)

Other tags:
    Since: - 2.0.0

Other tags:
    See: http://bsonspec.org/#/specification -

Returns:
  • (BSON::ByteBuffer) - The buffer with the encoded object.

Other tags:
    Example: Get the timestamp as BSON. -
def to_bson(buffer = ByteBuffer.new)
  buffer.put_uint32(increment)
  buffer.put_uint32(seconds)
end