Represents a timestamp type, which is predominately used for sharding.
@see bsonspec.org/#/specification
@since 2.0.0
Deserialize timestamp from BSON.
@param [ BSON ] bson The bson representing a timestamp.
@return [ Timestamp ] The decoded timestamp.
@see bsonspec.org/#/specification
@since 2.0.0
# File lib/bson/timestamp.rb, line 104 def self.from_bson(bson) new(*bson.read(8).unpack(Int32::PACK * 2).reverse) 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
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 [ String ] The raw BSON bytes.
@see bsonspec.org/#/specification
@since 2.0.0
# File lib/bson/timestamp.rb, line 90 def to_bson(encoded = ''.force_encoding(BINARY)) increment.to_bson_int32(encoded) seconds.to_bson_int32(encoded) end
Generated with the Darkfish Rdoc Generator 2.