モジュール: Mongo::Id Private

次のドキュメントに含まれます。
モニタリングプロトコル ::メッセージサーバー::接続
定義:
build/ruby-Driver-v 2.19 /lib/mongo/id.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

このモジュールは、 クラスのインスタンスの連続した一意の整数 ID を生成する機能を抽象化します。 これは、それを含むクラスの #next_id を定義します。 の実装により、複数のスレッドから呼び出された場合でも ID は一意になります。

IDを含むクラスは `@@id` または `@@id_lock` に直接アクセス しないでください 。代わりに、`#initiate` で `#next_id` を呼び出し、その結果を作成中の インスタンスに保存する必要があります。

例:

IDモジュールを含めます。

class Foo
  include Mongo::Id
end

f = Foo.new
foo.next_id # => 1
foo.next_id # => 2

含めるクラスのインスタンスに ID を保存します。

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

以来

  • 2.7.0

クラスメソッドの概要を折りたたむ

クラスメソッドの詳細

。 include( klas )=オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.7.0



56
57
58
59
60
61
62
63
64
65
66
67
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/id.rb', 行56

デフォルト 自己.次が含まれます:(klass)
  klass.Class_variable_set(:@@id, 0)
  klass.Class_variable_set(:@@id_lock, ミューテックス.新着情報)

  klass.定義_単一点_メソッド(:next_id) 行う
    klass.Class_variable_get(:@@id_lock).同期 行う
      id = Class_variable_get(:@@id)
      klass.Class_variable_set(:@@id, id + 1)
      klass.Class_variable_get(:@@id)
    end
  end
end