class BSON::Timestamp
Represents a timestamp type, which is predominately used for sharding.
@see bsonspec.org/#/specification
@since 2.0.0
Constants
- BSON_TYPE
A timestamp is type 0x11 in the BSON spec.
@since 2.0.0
Attributes
@!attribute seconds
@return [ Integer ] The number of seconds. @since 2.0.0
@!attribute increment
@return [ Integer ] The incrementing value. @since 2.0.0
@!attribute seconds
@return [ Integer ] The number of seconds. @since 2.0.0
@!attribute increment
@return [ Integer ] The incrementing value. @since 2.0.0
Public Class Methods
Deserialize timestamp from BSON.
@param [ ByteBuffer ] buffer The byte buffer.
@return [ Timestamp ] The decoded timestamp.
@see bsonspec.org/#/specification
@since 2.0.0
# File lib/bson/timestamp.rb, line 104 def self.from_bson(buffer) increment = buffer.get_int32 seconds = buffer.get_int32 new(seconds, increment) end
Instantiate the new timestamp.
@example Instantiate the timestamp.
BSON::Timestamp.new(5, 30)
@param [ Integer ] seconds The number of seconds. @param [ Integer ] increment The increment value.
@since 2.0.0
# File lib/bson/timestamp.rb, line 76 def initialize(seconds, increment) @seconds, @increment = seconds, increment end
Public Instance Methods
Determine if this timestamp is equal to another object.
@example Check the timestamp equality.
timestamp == other
@param [ Object ] other The object to compare against.
@return [ true, false ] If the objects are equal.
@since 2.0.0
# File lib/bson/timestamp.rb, line 50 def ==(other) return false unless other.is_a?(Timestamp) seconds == other.seconds && increment == other.increment end
Get the timestamp as its encoded raw BSON bytes.
@example Get the timestamp as BSON.
timestamp.to_bson
@return [ BSON::ByteBuffer ] The buffer with the encoded object.
@see bsonspec.org/#/specification
@since 2.0.0
# File lib/bson/timestamp.rb, line 90 def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?) buffer.put_int32(increment) buffer.put_int32(seconds) end