モジュール: Mongoid::Threaded
Overview
このモジュールには、現在のスレッドでライフサイクルがあるオブジェクトに簡単にアクセスするためのロジックが含まれています。
名前空間で定義済み
Modules: ライフサイクル
定数の概要の削減
- STORAGE_KEY =
共有スレッドとフィルターでローカルストレージのキー。フィルター ローカルストレージのキーはシンボルでなければならないため、シンボルである必要があります。
:'[mongoid]'- STORAGE_OWNER_KEY =
ストレージハッシュを所有するフラグを追跡し、フラグが親ファイルからストレージを継承した(作成ではなく)いつを検出します。
:'[mongoid]:wner'- DATABASE_OVERRIDE_KEY =
'db-overwrite'- CLIENT_OVERRIDE_KEY =
クライアントを上書きするキー。
'クライアント オーバーライド'- CURRENT_SCOPE_KEY =
現在のスレッドの スコープスタックのキー。
'current-scope'- オートメーション_キー =
'自動保存'- VALIDATIONS_KEY =
'validation'- TOUSH_MEGED_KEY =
'access-merged'- STACK_KEY =
ハッシュ.新着情報 行う |ハッシュ, キー| ハッシュ[キー] = " #{key } - スタック " end
- SESSIONS_KEY =
現在のスレッドのセッションのキー。
'セッション'- 変更された_DOCUMENTS_KEY =
トランザクション内で変更されたドキュメントを保存するためのキー。
'変更されたドキュメント'- EXECUTE_CALLBACKS =
ドキュメントに対してコールバックが実行されるかどうかのデフォルト値を保存するキー。
'コールバック実行'- BIND =
'bind'- ASsign =
'割り当て'- 構築 =
'構築'- ロード =
'負荷'- CREATE =
'create'
インスタンス メソッドの概要を折りたたむ
-
#add_modified_document(session, document) ⇒ Object
セッションに関連付けられたトランザクション内で変更されたドキュメントへの参照を保存します。
-
自動保存の数(ドキュメント)=true| false
ドキュメントは現在のスレッドで自動保存されていますか?
-
#autosaves ⇒ Hash
現在のスレッド上のすべてのオート保存を取得します。
-
#autosaves_for(klass) ⇒ Array
クラスの現在のスレッドにおけるすべてのオート保存を取得します。
-
#begin_autosave(document) ⇒ Object
現在のスレッドでドキュメントの自動保存を開始します。
-
# start_execution (name) = true
名前付きスレッド ローカル スタックへのエントリを開始します。
-
# start_contact_merged (ドキュメント) = Object
ドキュメントのアクセスアップデートが現在のスレッドのアトミック挿入にマージされたことをマークします。
-
start_validate (ドキュメント)= オブジェクト
現在のスレッドでドキュメントの検証を開始します。
-
# start_when_default_scope (klas)= オブジェクト
private
現在のスレッドで特定のモデルのデフォルト スコープの非表示を開始します。
-
#clear_modified_documents(session) ⇒ Set<Mongoid::Document>
指定されたセッションの変更されたドキュメントのセットをクリアし、クリアされる前にセットの内容を返します。
-
#clear_session(client: nil) ⇒ nil
クライアントのこのスレッドのキャッシュされたセッションをクリアします。
-
# client_serveride = string | Symbol
グローバル クライアント オーバーライドを取得します。
-
クライアント_オーバーライド= (名前) = string = (name) = string | Symbol
グローバル クライアント オーバーライドを設定します。
-
#current_scope (klas = nil)===========================================================
現在の Mongoid スコープを取得します。
-
# current_scope= (スコープ)===================================================================================
現在の Mongoid スコープを設定します。
-
#database_override ⇒ String | Symbol
グローバル データベースの上書きを取得します。
-
# database_overwrite= (name) = string | Symbol
グローバル データベース オーバーライドを設定します。
-
# delete(キー) = オブジェクト
という名前の変数をローカルストレージから削除します。
-
#実行_コールバックs= (フラグ) = オブジェクト
現在のスレッドに対してドキュメント コールバックをデフォルトで呼び出すかどうかを示します。
-
実行_コールバックの回数は? = true | false
ドキュメント コールバックを現在のスレッドでデフォルトで実行するかどうかをクエリします。
-
を実行する数は? (name) = true
名前付きスタックを実行している最中である。
-
終了_自動保存(ドキュメント) = オブジェクト
現在のスレッドでドキュメントの自動保存を終了します。
-
# end_execution (name) = true
名前付きスレッド ローカル スタックから終了します。
-
#終了_試行_merged(ドキュメント)= オブジェクト
現在のスレッド上のドキュメントの アクセスマージ フラグをクリアします。
-
end_validate (ドキュメント) = オブジェクト
現在のスレッド上のドキュメントの検証を終了します。
-
# end_Without_default_scope (klas) = オブジェクト
private
現在のスレッドで特定のモデルのデフォルト スコープの非表示を終了します。
-
# get (キー、デフォルト) = オブジェクト | nil
指定された名前のスレッドローカル変数またはフィルターローカル変数をクエリします。
-
#get_session(client: nil) ⇒ Mongo::Session | nil
クライアントのこのスレッドのキャッシュされたセッションを取得します。
-
は がありますか? (キー) = true | false
ローカルストレージ内の名前付き変数の存在をクエリします。
-
" modified_documents "<Mongoid::Document> = "Hash""Mongo::Session、Set"Mongoid::Document"
private
変更されたドキュメントのスレッド ストアを返します。
-
# リセットです。 = オブジェクト
現在のスレッドまたはフィルターでローカルストレージを初期状態にリセットします。
-
セッション= ハッシュ <Integer, Set>
private
セッションのスレッド ストアを返します。
-
# set(キー、値)=オブジェクト
指定された名前を持つローカルストレージ内の変数を指定された値に設定します。
-
# set_current_scope (scope、klas) = 基準
現在の Mongoid スコープを設定します。
-
# set_session (セッション、クライアント: nil) = オブジェクト
クライアント用のこのスレッドのセッションをキャッシュします。
-
#stack (名前)= 配列
名前付きスタックを取得します。
-
#contact_merged = ハッシュ
現在のスレッドですべてのアクセス マージされた追跡を取得します。
-
#contact_merged? (ドキュメント) = true | false
ドキュメントに、アクセスするアップデートがアトミックな挿入にマージされたというフラグは付けられていますか?
-
connect_merged_for (klas) = 配列
クラスの現在のスレッド上のすべてのアクセス マージドキュメントID を取得します。
-
検証された回数(ドキュメント)=true| false
ドキュメントは現在のスレッドで検証されていますか?
-
#validations ⇒ Hash
現在のスレッドのすべての検証を取得します。
-
#validations_for(klass) ⇒ Array
クラスの現在のスレッドに関するすべての検証を取得します。
-
では、_default_scope は(klas) = ブール値
private
指定されたクラスのデフォルトのスコープは現在のスレッドで非表示になっていますか。
インスタンス メソッドの詳細
#add_modified_document(session, document) ⇒ Object
セッションに関連付けられたトランザクション内で変更されたドキュメントへの参照を保存します。
504 505 506 507 508 |
# ファイル 'lib/mongoid/threaded.rb', 行504 デフォルト add_modified_document(セッション, ドキュメント) return ただし、 セッション&.in_transaction? scheduled_documents[セッション] < ドキュメント end |
自動保存の数(ドキュメント)= true| false
ドキュメントは現在のスレッドで自動保存されていますか?
368 369 370 |
# ファイル 'lib/mongoid/threaded.rb', 行368 デフォルト 自動保存(ドキュメント) autoss_for(ドキュメント.クラス).include?(ドキュメント._id) end |
#autosaves ⇒ Hash
現在のスレッド上のすべてのオート保存を取得します。
403 404 405 |
# ファイル 'lib/mongoid/threaded.rb', 行403 デフォルト 自動保存 得る(オートメーション_キー) { {} } end |
#autosaves_for(klass) ⇒ Array
クラスの現在のスレッドにおけるすべてのオート保存を取得します。
425 426 427 |
# ファイル 'lib/mongoid/threaded.rb', 行425 デフォルト autoss_for(klass) 自動保存[klass] ||= [] end |
#begin_autosave(document) ⇒ Object
現在のスレッドでドキュメントの自動保存を開始します。
198 199 200 |
# ファイル 'lib/mongoid/threaded.rb', 行198 デフォルト begin_autosave(ドキュメント) autoss_for(ドキュメント.クラス).プッシュ(ドキュメント._id) end |
# start_execution (name) = true
名前付きスレッド ローカル スタックへのエントリを開始します。
130 131 132 |
# ファイル 'lib/mongoid/threaded.rb', 行130 デフォルト start_execution(name) stack(name).プッシュ(true) end |
# start_contact_merged (ドキュメント) = Object
ドキュメントのアクセスアップデートが現在のスレッドのアトミック挿入にマージされたことをマークします。
219 220 221 |
# ファイル 'lib/mongoid/threaded.rb', 行219 デフォルト start_contact_merged(ドキュメント) access_merged_for(ドキュメント.クラス).プッシュ(ドキュメント._id) end |
start_validate (ドキュメント)=オブジェクト
現在のスレッドでドキュメントの検証を開始します。
208 209 210 |
# ファイル 'lib/mongoid/threaded.rb', 行208 デフォルト start_validate(ドキュメント) validation_for(ドキュメント.クラス).プッシュ(ドキュメント._id) end |
# start_when_default_scope (klas)=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在のスレッドで特定のモデルのデフォルト スコープの非表示を開始します。
261 262 263 |
# ファイル 'lib/mongoid/threaded.rb', 行261 デフォルト start_Without_default_scope(klass) stack(: without_default_scope).プッシュ(klass) end |
# clear_modified_documents (セッション) ==========================================================================================
指定されたセッションの変更されたドキュメントのセットをクリアし、クリアされる前にセットの内容を返します。
517 518 519 |
# ファイル 'lib/mongoid/threaded.rb', 行517 デフォルト clear_modified_documents(セッション) scheduled_documents.削除(セッション) || [] end |
#clear_session(client: nil) ⇒ nil
下位互換性のために、次のなしでこのメソッドを呼び出すことができます:
クライアントのこのスレッドのキャッシュされたセッションをクリアします。
client パラメータを指定する。
494 495 496 |
# ファイル 'lib/mongoid/threaded.rb', 行494 デフォルト clear_session(クライアント: nil) セッション.削除(クライアント)&.end_session end |
# client_serveride = string | Symbol
グローバル クライアント オーバーライドを取得します。
283 284 285 |
# ファイル 'lib/mongoid/threaded.rb', 行283 デフォルト client_ overwrite 得る(CLIENT_OVERRIDE_KEY) end |
クライアント_オーバーライド= (名前) = string = (name) = string | Symbol
グローバル クライアント オーバーライドを設定します。
295 296 297 |
# ファイル 'lib/mongoid/threaded.rb', 行295 デフォルト client_ overwrite=(name) セット(CLIENT_OVERRIDE_KEY, name) end |
#current_scope ( klas = nil)===========================================================
現在の Mongoid スコープを取得します。
308 309 310 311 312 313 314 315 316 |
# ファイル 'lib/mongoid/threaded.rb', 行308 デフォルト current_scope(klass = nil) current_scope = 得る(CURRENT_SCOPE_KEY) 場合 klass & & current_scope.respond_to?(:keys) current_scope[current_scope.キー.find { |k| k <= klass }] else current_scope end end |
# current_scope= (スコープ) =============================================================================
現在の Mongoid スコープを設定します。
326 327 328 |
# ファイル 'lib/mongoid/threaded.rb', 行326 デフォルト current_scope=(scope) セット(CURRENT_SCOPE_KEY, scope) end |
#database_override ⇒ String | Symbol
グローバル データベースの上書きを取得します。
140 141 142 |
# ファイル 'lib/mongoid/threaded.rb', 行140 デフォルト database_override 得る(DATABASE_OVERRIDE_KEY) end |
# database_overwrite= (name) = string | Symbol
グローバル データベース オーバーライドを設定します。
152 153 154 |
# ファイル 'lib/mongoid/threaded.rb', 行152 デフォルト database_override=(name) セット(DATABASE_OVERRIDE_KEY, name) end |
# delete(キー) = オブジェクト
という名前の変数をローカルストレージから削除します。
109 110 111 |
# ファイル 'lib/mongoid/threaded.rb', 行109 デフォルト 削除(キー) ストレージ.削除(キー) end |
#実行_コールバックs= (フラグ) =オブジェクト
現在のスレッドに対してドキュメント コールバックをデフォルトで呼び出すかどうかを示します。 個々のドキュメントはコールバックの動作をさらにオーバーライドする場合がありますが、これはデフォルトの動作に使用されます。
543 544 545 |
# ファイル 'lib/mongoid/threaded.rb', 行543 デフォルト execution_colbacks=(flag) セット(EXECUTE_CALLBACKS, flag) end |
実行_コールバックの回数は? = true | false
ドキュメント コールバックを現在のスレッドでデフォルトで実行するかどうかをクエリします。
特に指定されていない限り(#execute_colbacks=)、これは true を返します。
529 530 531 532 533 534 535 |
# ファイル 'lib/mongoid/threaded.rb', 行529 デフォルト execution_colbacks? 場合 は を(EXECUTE_CALLBACKS) 得る(EXECUTE_CALLBACKS) else true end end |
を実行する数は? (name) = true
名前付きスタックの実行の途中である
164 165 166 |
# ファイル 'lib/mongoid/threaded.rb', 行164 デフォルト 実行中(name) !stack(name).空の場合 end |
終了_自動保存(ドキュメント) =オブジェクト
現在のスレッドでドキュメントの自動保存を終了します。
229 230 231 |
# ファイル 'lib/mongoid/threaded.rb', 行229 デフォルト exit_autosave(ドキュメント) autoss_for(ドキュメント.クラス).delete_one(ドキュメント._id) end |
# end_execution (name) = true
名前付きスレッド ローカル スタックから終了します。
176 177 178 |
# ファイル 'lib/mongoid/threaded.rb', 行176 デフォルト end_execution(name) stack(name).ポップ end |
#終了_試行_merged(ドキュメント)= オブジェクト
現在のスレッド上のドキュメントの アクセスマージ フラグをクリアします。
249 250 251 |
# ファイル 'lib/mongoid/threaded.rb', 行249 デフォルト end_contact_merged(ドキュメント) access_merged_for(ドキュメント.クラス).delete_one(ドキュメント._id) end |
end_validate (ドキュメント) =オブジェクト
現在のスレッド上のドキュメントの検証を終了します。
239 240 241 |
# ファイル 'lib/mongoid/threaded.rb', 行239 デフォルト end_validate(ドキュメント) validation_for(ドキュメント.クラス).delete_one(ドキュメント._id) end |
# end_Without_default_scope (klas) = オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在のスレッドで特定のモデルのデフォルト スコープの非表示を終了します。
273 274 275 |
# ファイル 'lib/mongoid/threaded.rb', 行273 デフォルト end_Without_default_scope(klass) stack(: without_default_scope).削除(klass) end |
# get (キー、デフォルト) = オブジェクト | nil
指定された名前のスレッドローカル変数またはフィルターローカル変数をクエリします。ブロックが指定され、 かつ 変数がまだ存在しない場合、ブロックの戻り値は、返す前に変数の値として設定されます。
アプリケーション「フィルター ローカル ストアにスレッド ローカル状態を配置すると、関連するコールバックが別の フィルターで実行されているときに状態が表示されなくなります。
影響を受けるコールバックは、埋め込まれた子に対する段階的なコールバックです。
84 85 86 87 88 89 90 91 92 93 |
# ファイル 'lib/mongoid/threaded.rb', 行84 デフォルト 得る(キー, &default) 結果 = ストレージ[キー] 場合 結果.nil? & & default 結果 = ノードの数 セット(キー, 結果) end 結果 end |
#get_session(client: nil) ⇒ Mongo::Session | nil
下位互換性のために、次のなしでこのメソッドを呼び出すことができます:
クライアントのこのスレッドのキャッシュされたセッションを取得します。
client パラメータを指定する。
482 483 484 |
# ファイル 'lib/mongoid/threaded.rb', 行482 デフォルト get_session(クライアント: nil) セッション[クライアント] end |
は がありますか? (キー) = true | false
ローカルストレージ内の名前付き変数の存在をクエリします。
118 119 120 |
# ファイル 'lib/mongoid/threaded.rb', 行118 デフォルト は を(キー) ストレージ.key?(キー) end |
#modified_documents ==Hash=Mongo::Session, Set =Mongoid::Document=======================================================================
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
変更されたドキュメントのスレッド ストアを返します。
562 563 564 |
# ファイル 'lib/mongoid/threaded.rb', 行562 デフォルト scheduled_documents 得る(変更された_DOCUMENTS_KEY) { ハッシュ.新着情報 { |h, k| h[k] = セット.新着情報 } } end |
# リセットです。 = オブジェクト
現在のスレッドまたはフィルターでローカルストレージを初期状態にリセットします。これは、新しいスレッドまたはファイバを開始するときに、状態がクリーンであることを確認するのに役立ちます。
Mongoid::Config.real_isolation_level の値は、現在のスレッドまたはファイバのストレージをリセットするかどうかを決定するために使用されます。
53 54 55 56 57 58 59 60 61 62 63 |
# ファイル 'lib/mongoid/threaded.rb', 行53 デフォルト reset! ケース Config.real_isolation_level 次の場合: :thread スレッド.Current.thread_variable_set(STORAGE_KEY, nil) 次の場合: :fiber ファイバ[STORAGE_KEY] = {} ファイバ[STORAGE_OWNER_KEY] = ファイバ.Current.object_id else 発生 " 不明な分離レベル: #{ Config.real_isolation_level.explain} end end |
セッション=ハッシュ <Integer, Set>
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
セッションのスレッド ストアを返します。
552 553 554 |
# ファイル 'lib/mongoid/threaded.rb', 行552 デフォルト セッション 得る(SESSIONS_KEY) { {}.explain_by_ identity } end |
# set(キー、値)=オブジェクト
指定された名前を持つローカルストレージ内の変数を指定された値に設定します。このメソッドが必要な理由、および埋め込み子に対するカスケード コールバックで スレッド#[]= を回避する必要がある理由については、 #get を参照してください。
102 103 104 |
# ファイル 'lib/mongoid/threaded.rb', 行102 デフォルト セット(キー, 価値) ストレージ[キー] = 価値 end |
# set_current_scope (scope、klas) =基準
現在の Mongoid スコープを設定します。 マルチモデルのスコープチェーンでも安全です。
339 340 341 342 343 344 345 346 |
# ファイル 'lib/mongoid/threaded.rb', 行339 デフォルト set_current_scope(scope, klass) 場合 scope.nil? unset_current_scope(klass) else current_scope = 得る(CURRENT_SCOPE_KEY) { {} } current_scope[klass] = scope end end |
# set_session (セッション、クライアント: nil) =オブジェクト
下位互換性のために、次のなしでこのメソッドを呼び出すことができます:
クライアント用のこのスレッドのセッションをキャッシュします。
client パラメータを指定する。
470 471 472 |
# ファイル 'lib/mongoid/threaded.rb', 行470 デフォルト set_session(セッション, クライアント: nil) セッション[クライアント] = セッション end |
#stack (名前)=配列
名前付きスタックを取得します。
188 189 190 |
# ファイル 'lib/mongoid/threaded.rb', 行188 デフォルト stack(name) 得る(STACK_KEY[name]) { [] } end |
#contact_merged = ハッシュ
現在のスレッドですべてのアクセス マージされた追跡を取得します。
447 448 449 |
# ファイル 'lib/mongoid/threaded.rb', 行447 デフォルト access_merged 得る(TOUSH_MEGED_KEY) { {} } end |
#contact_merged? (ドキュメント) = true | false
ドキュメントに、アクセスするアップデートがアトミック挿入にマージされたというフラグは付けられていますか?
393 394 395 |
# ファイル 'lib/mongoid/threaded.rb', 行393 デフォルト access_merged?(ドキュメント) access_merged_for(ドキュメント.クラス).include?(ドキュメント._id) end |
connect_merged_for (klas) = 配列
クラスの現在のスレッド上のすべてのアクセス マージドキュメントID を取得します。
459 460 461 |
# ファイル 'lib/mongoid/threaded.rb', 行459 デフォルト access_merged_for(klass) access_merged[klass] ||= [] end |
検証された回数(ドキュメント)= true| false
ドキュメントは現在のスレッドで検証されていますか?
380 381 382 |
# ファイル 'lib/mongoid/threaded.rb', 行380 デフォルト 検証されていますか?(ドキュメント) validation_for(ドキュメント.クラス).include?(ドキュメント._id) end |
#validations ⇒ Hash
現在のスレッドのすべての検証を取得します。
413 414 415 |
# ファイル 'lib/mongoid/threaded.rb', 行413 デフォルト validation 得る(VALIDATIONS_KEY) { {} } end |
#validations_for(klass) ⇒ Array
クラスの現在のスレッドに関するすべての検証を取得します。
437 438 439 |
# ファイル 'lib/mongoid/threaded.rb', 行437 デフォルト validation_for(klass) validation[klass] ||= [] end |
では、_default_scope は(klas) = ブール値
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたクラスのデフォルトのスコープは現在のスレッドで非表示になっていますか。
356 357 358 |
# ファイル 'lib/mongoid/threaded.rb', 行356 デフォルト without_default_scope は(klass) stack(: without_default_scope).include?(klass) end |