| Module | Mongo::Id |
| In: |
lib/mongo/id.rb
|
This module abstracts the functionality for generating sequential unique integer IDs for instances of the class. It defines the method next_id on the class that includes it. The implementation ensures that the IDs will be unique even when called from multiple threads.
@example Include the Id module.
class Foo
include Mongo::Id
end
f = Foo.new
foo.next_id # => 1
foo.next_id # => 2
Classes which include Id should not access `@@id` or `@@id_lock` directly; instead, they should call `next_id` in `initialize` and save the result in the instance being created.
@example Save the ID in the instance of the including class.
class Bar
include Mongo::Id
attr_reader :id
def initialize
@id = self.class.next_id
end
end
a = Bar.new
a.id # => 1
b = Bar.new
b.id # => 2
@since 2.7.0 @api private