モジュール: Mongoid::Threaded
- 次による拡張機能。
- スレッド
- 次のドキュメントに含まれます。
- スレッド
- 定義:
- lib/mongoid/threaded.rb 、
lib/mongoid/threaded/feature.rb さらに...
Overview
このモジュールには、現在のスレッドでライフサイクルがあるオブジェクトに簡単にアクセスするためのロジックが含まれています。
名前空間で定義済み
Modules: ライフサイクル
定数の概要の削減
- DATABASE_OVERRIDE_KEY =
'[mongoid]:db-overwrite'
- CLIENTS_KEY =
クライアントを保存するキーの定数。
'[mongoid]:clients'
- CLIENT_OVERRIDE_KEY =
クライアントを上書きするキー。
'[mongoid]:client-overwrite'
- CURRENT_SCOPE_KEY =
現在のスレッドのスコープ スタックのキー。
'[mongoid]:current-scope'
- オートメーション_キー =
'[mongoid]: autosaves'
- VALIDATIONS_KEY =
'[mongoid]:validation'
- STACK_KEY =
ハッシュ.新着情報 行う |ハッシュ, キー| ハッシュ[キー] = " [mongoid]: #{ key } -stack " end
- SESSIONS_KEY =
現在のスレッドのセッションのキー。
'[mongoid]:sessions'
- 変更された_DOCUMENTS_KEY =
トランザクション内で変更されたドキュメントを保存するためのキー。
'[mongoid]:modified-documents'
- EXECUTE_CALLBACKS =
ドキュメントに対してコールバックが実行されるかどうかのデフォルト値を保存するキー。
'[mongoid]:execute-colbacks'
- BIND =
'bind'.freeze
- ASsign =
はを割り当てます.freeze
- 構築 =
'ビルド'.freeze
- ロード =
'load'.freeze
- CREATE =
' create '.freeze
インスタンス メソッドの概要を折りたたむ
-
#add_modified_document(session, document) ⇒ Object
セッションに関連付けられたトランザクション内で変更されたドキュメントへの参照を保存します。
-
自動保存の数(ドキュメント)=true| false
ドキュメントは現在のスレッドで自動保存されていますか?
-
#autosaves ⇒ Hash
現在のスレッド上のすべてのオート保存を取得します。
-
#autosaves_for(klass) ⇒ Array
クラスの現在のスレッドにおけるすべてのオート保存を取得します。
-
#begin_autosave(document) ⇒ Object
現在のスレッドでドキュメントの自動保存を開始します。
-
# start_execution (name) = true
名前付きスレッド ローカル スタックへのエントリを開始します。
-
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
名前付きスレッド ローカル スタックから終了します。
-
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 (名前)= 配列
名前付きスタックを取得します。
-
検証された回数(ドキュメント)=true| false
ドキュメントは現在のスレッドで検証されていますか?
-
#validations ⇒ Hash
現在のスレッドのすべての検証を取得します。
-
#validations_for(klass) ⇒ Array
クラスの現在のスレッドに関するすべての検証を取得します。
-
では、_default_scope は(klas) = ブール値
private
指定されたクラスのデフォルトのスコープは現在のスレッドで非表示になっていますか。
インスタンス メソッドの詳細
#add_modified_document(session, document) ⇒ Object
セッションに関連付けられたトランザクション内で変更されたドキュメントへの参照を保存します。
435 436 437 438 439 |
# ファイル 'lib/mongoid/threaded.rb', 行435 デフォルト add_modified_document(セッション, ドキュメント) return ただし、 セッション&.in_transaction? scheduled_documents[セッション] < ドキュメント end |
自動保存の数(ドキュメント)= true| false
ドキュメントは現在のスレッドで自動保存されていますか?
334 335 336 |
# ファイル 'lib/mongoid/threaded.rb', 行334 デフォルト 自動保存(ドキュメント) autoss_for(ドキュメント.クラス).include?(ドキュメント._id) end |
#autosaves ⇒ Hash
現在のスレッド上のすべてのオート保存を取得します。
356 357 358 |
# ファイル 'lib/mongoid/threaded.rb', 行356 デフォルト 自動保存 得る(オートメーション_キー) { {} } end |
#autosaves_for(klass) ⇒ Array
クラスの現在のスレッドにおけるすべてのオート保存を取得します。
378 379 380 |
# ファイル 'lib/mongoid/threaded.rb', 行378 デフォルト autoss_for(klass) 自動保存[klass] ||= [] end |
#begin_autosave(document) ⇒ Object
現在のスレッドでドキュメントの自動保存を開始します。
185 186 187 |
# ファイル 'lib/mongoid/threaded.rb', 行185 デフォルト begin_autosave(ドキュメント) autoss_for(ドキュメント.クラス).プッシュ(ドキュメント._id) end |
# start_execution (name) = true
名前付きスレッド ローカル スタックへのエントリを開始します。
117 118 119 |
# ファイル 'lib/mongoid/threaded.rb', 行117 デフォルト start_execution(name) stack(name).プッシュ(true) end |
start_validate (ドキュメント)=オブジェクト
現在のスレッドでドキュメントの検証を開始します。
195 196 197 |
# ファイル 'lib/mongoid/threaded.rb', 行195 デフォルト start_validate(ドキュメント) validation_for(ドキュメント.クラス).プッシュ(ドキュメント._id) end |
# start_when_default_scope (klas)=オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在のスレッドで特定のモデルのデフォルト スコープの非表示を開始します。
227 228 229 |
# ファイル 'lib/mongoid/threaded.rb', 行227 デフォルト start_Without_default_scope(klass) stack(: without_default_scope).プッシュ(klass) end |
# clear_modified_documents (セッション) ==========================================================================================
指定されたセッションの変更されたドキュメントのセットをクリアし、クリアされる前にセットの内容を返します。
448 449 450 |
# ファイル 'lib/mongoid/threaded.rb', 行448 デフォルト clear_modified_documents(セッション) scheduled_documents.削除(セッション) || [] end |
#clear_session(client: nil) ⇒ nil
下位互換性のために、次のなしでこのメソッドを呼び出すことができます:
クライアントのこのスレッドのキャッシュされたセッションをクリアします。
'client` パラメーターを指定します。
425 426 427 |
# ファイル 'lib/mongoid/threaded.rb', 行425 デフォルト clear_session(クライアント: nil) セッション.削除(クライアント)&.end_session end |
# client_serveride = string | Symbol
グローバル クライアント オーバーライドを取得します。
249 250 251 |
# ファイル 'lib/mongoid/threaded.rb', 行249 デフォルト client_ overwrite 得る(CLIENT_OVERRIDE_KEY) end |
クライアント_オーバーライド= (名前) = string = (name) = string | Symbol
グローバル クライアント オーバーライドを設定します。
261 262 263 |
# ファイル 'lib/mongoid/threaded.rb', 行261 デフォルト client_ overwrite=(name) セット(CLIENT_OVERRIDE_KEY, name) end |
#current_scope ( klas = nil)===========================================================
現在の Mongoid スコープを取得します。
274 275 276 277 278 279 280 281 282 |
# ファイル 'lib/mongoid/threaded.rb', 行274 デフォルト 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 スコープを設定します。
292 293 294 |
# ファイル 'lib/mongoid/threaded.rb', 行292 デフォルト current_scope=(scope) セット(CURRENT_SCOPE_KEY, scope) end |
#database_override ⇒ String | Symbol
グローバル データベースの上書きを取得します。
127 128 129 |
# ファイル 'lib/mongoid/threaded.rb', 行127 デフォルト database_override 得る(DATABASE_OVERRIDE_KEY) end |
# database_overwrite= (name) = string | Symbol
グローバル データベース オーバーライドを設定します。
139 140 141 |
# ファイル 'lib/mongoid/threaded.rb', 行139 デフォルト database_override=(name) セット(DATABASE_OVERRIDE_KEY, name) end |
# delete(キー) = オブジェクト
名前付き変数を スレッド ローカルストレージから削除します。
84 85 86 |
# ファイル 'lib/mongoid/threaded.rb', 行84 デフォルト 削除(キー) セット(キー, nil) end |
#実行_コールバックs= (フラグ) =オブジェクト
現在のスレッドに対してドキュメント コールバックをデフォルトで呼び出すかどうかを示します。 個々のドキュメントはコールバックの動作をさらにオーバーライドする場合がありますが、これはデフォルトの動作に使用されます。
474 475 476 |
# ファイル 'lib/mongoid/threaded.rb', 行474 デフォルト execution_colbacks=(flag) セット(EXECUTE_CALLBACKS, flag) end |
実行_コールバックの回数は? = true | false
ドキュメント コールバックを現在のスレッドでデフォルトで実行するかどうかをクエリします。
特に指定されていない限り(#execute_colbacks=)、これは true を返します。
460 461 462 463 464 465 466 |
# ファイル 'lib/mongoid/threaded.rb', 行460 デフォルト execution_colbacks? 場合 は を(EXECUTE_CALLBACKS) 得る(EXECUTE_CALLBACKS) else true end end |
を実行する数は? (name) = true
名前付きスタックの実行の途中である
151 152 153 |
# ファイル 'lib/mongoid/threaded.rb', 行151 デフォルト 実行中(name) !stack(name).空の場合 end |
終了_自動保存(ドキュメント) =オブジェクト
現在のスレッドでドキュメントの自動保存を終了します。
205 206 207 |
# ファイル 'lib/mongoid/threaded.rb', 行205 デフォルト exit_autosave(ドキュメント) autoss_for(ドキュメント.クラス).delete_one(ドキュメント._id) end |
# end_execution (name) = true
名前付きスレッド ローカル スタックから終了します。
163 164 165 |
# ファイル 'lib/mongoid/threaded.rb', 行163 デフォルト end_execution(name) stack(name).ポップ end |
end_validate (ドキュメント) =オブジェクト
現在のスレッド上のドキュメントの検証を終了します。
215 216 217 |
# ファイル 'lib/mongoid/threaded.rb', 行215 デフォルト end_validate(ドキュメント) validation_for(ドキュメント.クラス).delete_one(ドキュメント._id) end |
# end_Without_default_scope (klas) = オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
現在のスレッドで特定のモデルのデフォルト スコープの非表示を終了します。
239 240 241 |
# ファイル 'lib/mongoid/threaded.rb', 行239 デフォルト end_Without_default_scope(klass) stack(: without_default_scope).削除(klass) end |
# get (キー、デフォルト) = オブジェクト | nil
指定された名前を持つスレッドローカル変数をクエリします。 ブロックが指定され、 かつ 変数がまだ存在しない場合、ブロックの戻り値は、返す前に変数の値として設定されます。
アプリケーション「フィルターのローカル ストアにスレッド ローカルの状態を配置すると、関連するコールバックが別のフィルターで実行されたときに状態が表示されなくなります。
影響を受けるコールバックは、埋め込まれた子に対する段階的なコールバックです。
59 60 61 62 63 64 65 66 67 68 |
# ファイル 'lib/mongoid/threaded.rb', 行59 デフォルト 得る(キー, &default) 結果 = スレッド.Current.thread_variable_get(キー) 場合 結果.nil? & & default 結果 = ノードの数 セット(キー, 結果) end 結果 end |
#get_session(client: nil) ⇒ Mongo::Session | nil
下位互換性のために、次のなしでこのメソッドを呼び出すことができます:
クライアントのこのスレッドのキャッシュされたセッションを取得します。
'client` パラメーターを指定します。
413 414 415 |
# ファイル 'lib/mongoid/threaded.rb', 行413 デフォルト get_session(クライアント: nil) セッション[クライアント] end |
は がありますか? (キー) = true | false
スレッド ローカルストレージ内の名前付き変数の存在をクエリします。
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# ファイル 'lib/mongoid/threaded.rb', 行93 デフォルト は を(キー) ここでは、#JRuby が MRI のように動作しないというクラシックな例を示します。 で #MRI、スレッド変数を nil に設定すると、リストから削除されます string_variable?(key) に対する 以降の呼び出しは false を返します。 ではない JRuby ではそのため、 一度設定すると、スレッド変数を設定解除することはできません。 # ただし、変数を nil に設定すると削除されるはずであるため、 # では nil 値の変数は実際には存在しないと仮定できます。 # したがって、これは代わりに次のことを行います。 #Thread.current.thread_variable?(key) # これを行う必要があります。 !得る(キー).nil? end |
#modified_documents ==Hash=Mongo::Session, Set =Mongoid::Document=======================================================================
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
変更されたドキュメントのスレッド ストアを返します。
493 494 495 |
# ファイル 'lib/mongoid/threaded.rb', 行493 デフォルト scheduled_documents 得る(変更された_DOCUMENTS_KEY) { ハッシュ.新着情報 { |h, k| h[k] = セット.新着情報 } } end |
セッション=ハッシュ <Integer, Set>
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
セッションのスレッド ストアを返します。
483 484 485 |
# ファイル 'lib/mongoid/threaded.rb', 行483 デフォルト セッション 得る(SESSIONS_KEY) { {}.explain_by_ identity } end |
# set(キー、値)=オブジェクト
指定された名前を持つスレッドローカル変数を指定された値に設定します。 このメソッドが必要な理由、および埋め込み子に対するカスケード コールバックで スレッド#[]= を回避する必要がある理由については、 #get を参照してください。
77 78 79 |
# ファイル 'lib/mongoid/threaded.rb', 行77 デフォルト セット(キー, 価値) スレッド.Current.thread_variable_set(キー, 価値) end |
# set_current_scope (scope、klas) =基準
現在の Mongoid スコープを設定します。 マルチモデルのスコープチェーンでも安全です。
305 306 307 308 309 310 311 312 |
# ファイル 'lib/mongoid/threaded.rb', 行305 デフォルト 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` パラメーターを指定します。
401 402 403 |
# ファイル 'lib/mongoid/threaded.rb', 行401 デフォルト set_session(セッション, クライアント: nil) セッション[クライアント] = セッション end |
#stack (名前)=配列
名前付きスタックを取得します。
175 176 177 |
# ファイル 'lib/mongoid/threaded.rb', 行175 デフォルト stack(name) 得る(STACK_KEY[name]) { [] } end |
検証された回数(ドキュメント)= true| false
ドキュメントは現在のスレッドで検証されていますか?
346 347 348 |
# ファイル 'lib/mongoid/threaded.rb', 行346 デフォルト 検証されていますか?(ドキュメント) validation_for(ドキュメント.クラス).include?(ドキュメント._id) end |
#validations ⇒ Hash
現在のスレッドのすべての検証を取得します。
366 367 368 |
# ファイル 'lib/mongoid/threaded.rb', 行366 デフォルト validation 得る(VALIDATIONS_KEY) { {} } end |
#validations_for(klass) ⇒ Array
クラスの現在のスレッドに関するすべての検証を取得します。
390 391 392 |
# ファイル 'lib/mongoid/threaded.rb', 行390 デフォルト validation_for(klass) validation[klass] ||= [] end |