クラス: Mongoid::PeristanceContext

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
定義:
lib/mongoid/persistance_context.rb

Overview

コレクションとデータベース名、およびモデルを永続化するときに使用する特定のオプションを持つクライアントを設定/取得するためのオブジェクト カプセル化ロジック。

定数の概要の削減

EXTRA_OPTIONS =

永続性コンテキストを決定するドライバー クライアント オプションに加えて、追加のオプション。

次の値を返します。

  • 配列<Symbol>

    永続性コンテキストを決定するクライアント オプション以外の追加オプションのリスト。

[ :client,
  :collection
].freeze
VALID_OPTIONS =

有効な永続化コンテキスト オプションの完全なリスト。

次の値を返します。

  • 配列<Symbol>

    永続化コンテキストを定義するオプションの完全なリスト。

( mongo::クライアント::VALID_OPTIONS + EXTRA_OPTIONS ).freeze

インスタンス属性の概要を折りたたむ

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

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#初期化(オブジェクト、ops = {}) = PersistanceContext

永続性コンテキスト オブジェクトを初期化します。

例:

新しい永続化コンテキストを作成します。

PersistenceContext.new(model, collection: 'other')

パラメーター:

  • オブジェクト オブジェクト

    永続化コンテキストを作成するクラスまたはモデル インスタンス。

  • ops ハッシュ (デフォルトは{}です)

    永続化コンテキスト オプション。



45
46
47
48
# ファイル 'lib/mongoid/永続性_context.rb' は、 45行

デフォルト 初期化(オブジェクト, ops = {})
  @object = オブジェクト
  set_options!(ops)
end

インスタンス属性の詳細

オプション=ハッシュ(読み取り専用)

この永続化コンテキストを定義するオプション。

次の値を返します。

  • ハッシュ

    永続化コンテキスト オプション。



20
21
22
# ファイル 'lib/mongoid/永続性_context.rb' は、 20行

デフォルト options
  @options
end

クラスメソッドの詳細

clear (オブジェクト、クラスター = nil、 old_context = nil) =オブジェクト

特定のクラスまたはモデル インスタンスの永続化コンテキストをクリアします。

例:

クラスまたはモデル インスタンスの永続化コンテキストをクリアします。

PersistenceContext.clear(model)

パラメーター:

  • オブジェクト クラス | オブジェクト

    クラスまたはモデル インスタンス。

  • クラスター Mongo::Cluster (デフォルトはnil

    このコンテキストが使用される前の元のクラスター。

  • initial_context Mongoid::PerstanceContext (デフォルトはnil

    このコンテキストが使用される前に設定された元の永続化コンテキスト。



267
268
269
270
271
272
273
274
275
# ファイル 'lib/mongoid/永続性_context.rb' は、 267行

デフォルト クリア(オブジェクト, クラスター = nil, initial_context = nil)
  場合 context = 得る(オブジェクト)
    ただし、 クラスター.nil? || context.クラスター.と等しいか(クラスター)
      context.クライアント.閉じる ただし、 context.reusable_client?
    end
  end
保証する
  store_context(オブジェクト, initial_context)
end

get (オブジェクト) → Mongoid::PeristanceContext

特定のクラスまたはモデル インスタンスの永続化コンテキストを取得します。

例:

クラスまたはモデル インスタンスの永続化コンテキストを取得します。

PersistenceContext.get(model)

パラメーター:

  • オブジェクト オブジェクト

    クラスまたはモデル インスタンス。

次の値を返します。



254
255
256
# ファイル 'lib/mongoid/永続性_context.rb' は、 254行

デフォルト 得る(オブジェクト)
  get_context(オブジェクト)
end

set (オブジェクト、オプション_or_context) = Mongoid::PeristanceContext

特定のクラスまたはモデル インスタンスの永続化コンテキストを設定します。

永続性コンテキストセットがすでに存在する場合は、既存のコンテキスト内のオプションは、セット呼び出しに指定されたオプションと組み合わされます。

例:

クラスまたはモデル インスタンスの永続化コンテキストを設定します。

PersistenceContext.set(model)

パラメーター:

  • オブジェクト オブジェクト

    クラスまたはモデル インスタンス。

  • options_or_context ハッシュ | Mongoid ::PerformanceContext

    永続性オプションまたは 永続性コンテキスト オブジェクト。

次の値を返します。



231
232
233
234
235
236
237
238
239
240
241
242
243
244
# ファイル 'lib/mongoid/永続性_context.rb' は、 231行

デフォルト セット(オブジェクト, options_or_context)
  exist_context = get_context(オブジェクト)
  exist_options = 場合 exist_context
    exist_context.options
  else
    {}
  end
  場合 options_or_context.is_a?(PersistanceContext)
    options_or_context = options_or_context.options
  end
  new_options = exist_options.merge(options_or_context)
  context = PersistanceContext.新着情報(オブジェクト, new_options)
  store_context(オブジェクト, context)
end

インスタンス メソッドの詳細

# == (その他) ==(その他) ========= ================================================================== false

この永続化コンテキストが別の永続化コンテキストと等しいかどうかを判断します。

例:

2 つの永続性コンテキストを比較します。

context == other_context

パラメーター:

  • その他 オブジェクト

    このオブジェクトと比較されるオブジェクト。

次の値を返します。

  • true | false

    2 つの永続化コンテキストが等しいかどうか。



150
151
152
153
# ファイル 'lib/mongoid/永続性_context.rb' は、 150行

デフォルト ==(その他)
  return false ただし、 その他.is_a?(PersistanceContext)
  options == その他.options
end

クライアント= Mongo::Client

この永続化コンテキストのクライアントを取得します。

例:

この永続化コンテキストのクライアントを取得します。

context.client

次の値を返します。

  • Mongo::Client

    この永続化コンテキストのクライアント。



116
117
118
119
120
121
122
123
124
125
126
127
# ファイル 'lib/mongoid/永続性_context.rb' は、 116行

デフォルト クライアント
  @client ||= begin
    クライアント = クライアント.with_name(client_name)
    場合 database_name_option
      クライアント = クライアント.使用(database_name)
    end
    ただし、 client_options.空の場合
      クライアント = クライアント.と共に(client_options)
    end
    クライアント
  end
end

#client_nameSymbol

この永続化コンテキストのクライアント名を取得します。

例:

この永続化コンテキストのクライアント名を取得します。

context.client_name

次の値を返します。

  • シンボル

    この永続化コンテキストのクライアント名。



136
137
138
139
140
# ファイル 'lib/mongoid/永続性_context.rb' は、 136行

デフォルト client_name
  @client_name ||= options[:client] ||
                     スレッド.client_ overwrite ||
                     __evaluate__(storage_options[:client])
end

コレクション(親 = nil)= Mongo::Collection

この永続化コンテキストのコレクションを取得します。

例:

この永続化コンテキストのコレクションを取得します。

context.collection

パラメーター:

  • オブジェクト (デフォルトはnil

    この永続化コンテキストのコレクション名の代わりにコレクション名が使用される親オブジェクト。

次の値を返します。

  • Mongo::Collection

    この永続化コンテキストの コレクション。



80
81
82
83
84
# ファイル 'lib/mongoid/永続性_context.rb' は、 80行

デフォルト コレクション( = nil)
   ?
    .コレクション.と共に(client_options.次の項目を除く(:database, "データベース")) :
    クライアント[collection_name.to_sym]
end

# collection_name = string

この永続化コンテキストのコレクション名を取得します。

例:

この永続化コンテキストのコレクション名を取得します。

context.collection_name

次の値を返します。

  • ( string )

    この永続コンテキストのコレクション名。



93
94
95
96
# ファイル 'lib/mongoid/永続性_context.rb' は、 93行

デフォルト collection_name
  @collection_name ||= (__evaluate__(options[:collection] ||
                         storage_options[:collection]))
end

# database_name = string

この永続コンテキストのデータベース名を取得します。

例:

この永続コンテキストのデータベース名を取得します。

context.database_name

次の値を返します。

  • ( string )

    この永続コンテキストのデータベース名。



105
106
107
# ファイル 'lib/mongoid/永続性_context.rb' は、 105行

デフォルト database_name
  __evaluate__(database_name_option) || クライアント.database.name
end

#for_field (ドキュメント)= PersistanceContext

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

指定された子ドキュメントと整合性のある新しい永続化コンテキストを返し、最も適切な設定を継承します。

パラメーター:

次の値を返します。



58
59
60
61
62
63
64
65
66
67
68
# ファイル 'lib/mongoid/永続性_context.rb' は、 58行

デフォルト for_field(ドキュメント)
  場合 ドキュメント.is_a?(クラス)
    return 自己 場合 ドキュメント == (@object.is_a?(クラス) ? @object : @object.クラス)
  elsif ドキュメント.is_a?(Mongoid::ドキュメント)
    return 自己 場合 ドキュメント.クラス == (@object.is_a?(クラス) ? @object : @object.クラス)
  else
    発生 ArgumentError, クラスまたはドキュメント インスタンスを指定する必要があり ます 。
  end

  PersistanceContext.新着情報(ドキュメント, options.merge(ドキュメント.storage_options))
end

= requested_storage_options =ハッシュ | ハッシュnil

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

ストレージ オプションとして使用可能な、提供されたオプションのサブセット。

次の値を返します。

  • (ハッシュ | nil )

    要求されたストレージ オプションを指定し、指定されていない場合は nil です。



177
178
179
180
# ファイル 'lib/mongoid/永続性_context.rb' は、 177行

デフォルト requested_storage_options
  スライス = @options.スライス(*Mongoid::クライアント::バリデーター::ストレージ::VALID_OPTIONS)
  スライス.any? ? スライス : nil
end

#reusable_client = true | false

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

コンテキストのクライアントを後で再利用することができ、したがって閉じないでください。

永続性コンテキストが :client オプションのみで要求されている場合、コンテキストは mongoid.yml で構成されたクライアントを使用する必要があります。 このようなクライアントは後で再利用されるため、コンテキストがクリアされるときに閉じないでください。

次の値を返します。

  • true | false

    クライアントを再利用できる場合は true、それ以外の場合は false です。



166
167
168
# ファイル 'lib/mongoid/永続性_context.rb' は、 166行

デフォルト reusable_client?
  @options.キー == [:client]
end