モジュール: Mongoid::Threaded

次による拡張機能。
スレッド
次のドキュメントに含まれます。
スレッド
定義:
build/mongoid- 8.1 /lib/mongoid/threaded.rb
build/mongoid- 8.1 /lib/mongoid/threaded/Lifecollection.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
EXECUTE_CALLBACKS =

ドキュメントに対してコールバックが実行されるかどうかのデフォルト値を保存するキー。

'[mongoid]:execute-colbacks'
BIND =
'bind'.freeze
ASsign =
割り当てます.freeze
構築 =
'ビルド'.freeze
ロード =
'load'.freeze
CREATE =
' create '.freeze

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

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

自動保存の数(ドキュメント)= true| false

ドキュメントは現在のスレッドで自動保存されていますか?

例:

ドキュメントは自動保存されていますか?

Threaded.autosaved?(doc)

パラメーター:

次の値を返します。

  • true | false

    ドキュメントが自動保存されている場合。



263
264
265
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は263行

デフォルト 自動保存(ドキュメント)
  autoss_for(ドキュメント.クラス).include?(ドキュメント._id)
end

#autosavesHash

現在のスレッド上のすべてのオート保存を取得します。

例:

すべての自動保存を取得します。

Threaded.autosaves

次の値を返します。

  • ハッシュ

    現在の は自動保存されます。



285
286
287
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は285行

デフォルト 自動保存
  スレッド.Current[オートメーション_キー] ||= {}
end

#autosaves_for(klass) ⇒ Array

クラスの現在のスレッドにおけるすべてのオート保存を取得します。

例:

すべての自動保存を取得します。

Threaded.autosaves_for(Person)

パラメーター:

  • klass クラス

    確認する クラス。

次の値を返します。

  • 配列

    現在の は自動保存されます。



307
308
309
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は307行

デフォルト autoss_for(klass)
  自動保存[klass] ||= []
end

#begin_autosave(document) ⇒ Object

現在のスレッドでドキュメントの自動保存を開始します。

例:

Begin autosave.

Threaded.begin_autosave(doc)

パラメーター:



111
112
113
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は111行

デフォルト begin_autosave(ドキュメント)
  autoss_for(ドキュメント.クラス).プッシュ(ドキュメント._id)
end

# start_execution (name) = true

名前付きスレッド ローカル スタックへのエントリを開始します。

例:

スタックへのエントリを開始します。

Threaded.begin_execution(:create)

パラメーター:

  • name ( string )

    スタックの名前

次の値を返します。

  • ( true )

    True。



43
44
45
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は43行

デフォルト start_execution(name)
  stack(name).プッシュ(true)
end

start_validate (ドキュメント)=オブジェクト

現在のスレッドでドキュメントの検証を開始します。

例:

Begin validation.

Threaded.begin_validate(doc)

パラメーター:



121
122
123
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は121行

デフォルト start_validate(ドキュメント)
  validation_for(ドキュメント.クラス).プッシュ(ドキュメント._id)
end

# start_when_default_scope (klas)=オブジェクト

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

現在のスレッドで特定のモデルのデフォルト スコープの非表示を開始します。

例:

デフォルトのスコープ スタックなしで を開始します。

Threaded.begin_without_default_scope(klass)

パラメーター:

  • klass クラス

    デフォルトのスコープを抑制するモデル。



153
154
155
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は153行

デフォルト start_Without_default_scope(klass)
  stack(: without_default_scope).プッシュ(klass)
end

#clear_sessionnil

このスレッドのキャッシュされたセッションをクリアします。

例:

このスレッドのセッションをクリアします。

Threaded.clear_session

次の値を返します。

  • (nil)


348
349
350
351
352
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は348行

デフォルト clear_session
  セッション = get_session
  セッション.end_session 場合 セッション
  スレッド.Current[" [mongoid]:session "] = nil
end

# client_serveride = string | Symbol

グローバル クライアント オーバーライドを取得します。

例:

グローバル クライアント オーバーライドを取得します。

Threaded.client_override

次の値を返します。

  • ( string | Symbol )

    の上書き。



175
176
177
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は175行

デフォルト client_ overwrite
  スレッド.Current[CLIENT_OVERRIDE_KEY]
end

クライアント_オーバーライド= (名前) = string = (name) = string | Symbol

グローバル クライアント オーバーライドを設定します。

例:

グローバル クライアント オーバーライドを設定します。

Threaded.client_override = :testing

パラメーター:

  • name ( string | Symbol )

    グローバル オーバーライド名。

次の値を返します。

  • ( string | Symbol )

    の上書き。



187
188
189
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は187行

デフォルト client_ overwrite=(name)
  スレッド.Current[CLIENT_OVERRIDE_KEY] = name
end

#current_scopeklas = nil)===========================================================

現在の Mongoid スコープを取得します。

例:

スコープを取得します。

Threaded.current_scope(klass)
Threaded.current_scope

パラメーター:

  • klass (Klass) (デフォルトはnil

    スコープのクラス型。

次の値を返します。

  • 基準

    スコープ。



200
201
202
203
204
205
206
207
208
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は200行

デフォルト current_scope(klass = nil)
  場合 klass & & スレッド.Current[CURRENT_SCOPE_KEY].respond_to?(:keys)
    スレッド.Current[CURRENT_SCOPE_KEY][
        スレッド.Current[CURRENT_SCOPE_KEY].キー.find { |k| k <= klass }
    ]
  else
    スレッド.Current[CURRENT_SCOPE_KEY]
  end
end

# current_scope= (スコープ) =============================================================================

現在の Mongoid スコープを設定します。

例:

範囲 を設定します。

Threaded.current_scope = scope

パラメーター:

  • scope 基準

    現在のスコープ。

次の値を返します。

  • 基準

    スコープ。



218
219
220
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は218行

デフォルト current_scope=(scope)
  スレッド.Current[CURRENT_SCOPE_KEY] = scope
end

#database_overrideString | Symbol

グローバル データベースの上書きを取得します。

例:

グローバル データベースの上書きを取得します。

Threaded.database_override

次の値を返します。

  • ( string | Symbol )

    の上書き。



53
54
55
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は53行

デフォルト database_override
  スレッド.Current[DATABASE_OVERRIDE_KEY]
end

# database_overwrite= (name) = string | Symbol

グローバル データベース オーバーライドを設定します。

例:

グローバル データベース オーバーライドを設定します。

Threaded.database_override = :testing

パラメーター:

  • name ( string | Symbol )

    グローバル オーバーライド名。

次の値を返します。

  • ( string | Symbol )

    の上書き。



65
66
67
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は65行

デフォルト database_override=(name)
  スレッド.Current[DATABASE_OVERRIDE_KEY] = name
end

#実行_コールバックs= (フラグ) =オブジェクト

現在のスレッドに対してドキュメント コールバックをデフォルトで呼び出すかどうかを示します。 個々のドキュメントはコールバックの動作をさらにオーバーライドする場合がありますが、これはデフォルトの動作に使用されます。

パラメーター:

  • flag true | false

    ドキュメント コールバックをデフォルトで実行するかどうか。



376
377
378
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は376行

デフォルト execution_colbacks=(flag)
  スレッド.Current[EXECUTE_CALLBACKS] = flag
end

実行_コールバックの回数は? = true | false

ドキュメント コールバックを現在のスレッドでデフォルトで実行するかどうかをクエリします。

特に指定されていない限り(#execute_colbacks=)、これは true を返します。

次の値を返します。

  • true | false

    ドキュメント コールバックをデフォルトで実行するかどうか。



362
363
364
365
366
367
368
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は362行

デフォルト execution_colbacks?
  場合 スレッド.Current.key?(EXECUTE_CALLBACKS)
    スレッド.Current[EXECUTE_CALLBACKS]
  else
    true
  end
end

実行する数は? (name) = true

名前付きスタックの実行の途中である

例:

スタック実行中かどうか

Threaded.executing?(:create)

パラメーター:

  • name シンボル

    スタックの名前

次の値を返します。

  • ( true )

    スタックが実行されている場合。



77
78
79
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は77行

デフォルト 実行中(name)
  !stack(name).空の場合
end

終了_自動保存(ドキュメント) =オブジェクト

現在のスレッドでドキュメントの自動保存を終了します。

例:

自動保存を終了します。

Threaded.exit_autosave(doc)

パラメーター:



131
132
133
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は131行

デフォルト exit_autosave(ドキュメント)
  autoss_for(ドキュメント.クラス).delete_one(ドキュメント._id)
end

# end_execution (name) = true

名前付きスレッド ローカル スタックから終了します。

例:

スタックから終了します。

Threaded.exit_execution(:create)

パラメーター:

  • name シンボル

    スタックの名前

次の値を返します。

  • ( true )

    True。



89
90
91
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は89行

デフォルト end_execution(name)
  stack(name).ポップ
end

end_validate (ドキュメント) =オブジェクト

現在のスレッド上のドキュメントの検証を終了します。

例:

検証を終了します。

Threaded.exit_validate(doc)

パラメーター:



141
142
143
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は141行

デフォルト end_validate(ドキュメント)
  validation_for(ドキュメント.クラス).delete_one(ドキュメント._id)
end

# end_Without_default_scope (klas) = オブジェクト

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

現在のスレッドで特定のモデルのデフォルト スコープの非表示を終了します。

例:

デフォルトのスコープ スタックなしで を終了します。

Threaded.exit_without_default_scope(klass)

パラメーター:

  • klass クラス

    デフォルトのスコープ設定を解除するモデル。



165
166
167
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は165行

デフォルト end_Without_default_scope(klass)
  stack(: without_default_scope).削除(klass)
end

#get_sessionMongo::Session | nil

このスレッドのキャッシュされたセッションを取得します。

例:

このスレッドのセッションを取得します。

Threaded.get_session

次の値を返します。

  • Mongo ::Session | nil

    このスレッドまたは nil でキャッシュされたセッション。



338
339
340
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は338行

デフォルト get_session
  スレッド.Current[" [mongoid]:session "]
end

# set_current_scope (scope、klas) =基準

現在の Mongoid スコープを設定します。 マルチモデルのスコープチェーンでも安全です。

例:

範囲 を設定します。

Threaded.current_scope(scope, klass)

パラメーター:

  • scope 基準

    現在のスコープ。

  • klass クラス

    現在のモデル クラス。

次の値を返します。

  • 基準

    スコープ。



231
232
233
234
235
236
237
238
239
240
241
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は231行

デフォルト set_current_scope(scope, klass)
  場合 scope.nil?
    場合 スレッド.Current[CURRENT_SCOPE_KEY]
      スレッド.Current[CURRENT_SCOPE_KEY].削除(klass)
      スレッド.Current[CURRENT_SCOPE_KEY] = nil 場合 スレッド.Current[CURRENT_SCOPE_KEY].空の場合
    end
  else
    スレッド.Current[CURRENT_SCOPE_KEY] ||= {}
    スレッド.Current[CURRENT_SCOPE_KEY][klass] = scope
  end
end

#set_session(session) ⇒ Object

このスレッドのセッションをキャッシュします。

例:

このスレッドのセッションを保存します。

Threaded.set_session(session)

パラメーター:

  • セッション Mongo::Session

    保存するセッション。



328
329
330
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は328行

デフォルト set_session(セッション)
  スレッド.Current[" [mongoid]:session "] = セッション
end

#stack (名前)=配列

名前付きスタックを取得します。

例:

名前を使用してスタックを取得する

Threaded.stack(:create)

パラメーター:

  • name シンボル

    スタックの名前

次の値を返します。

  • 配列

    スタック。



101
102
103
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は101行

デフォルト stack(name)
  スレッド.Current[STACK_KEY[name]] ||= []
end

検証された回数(ドキュメント)= true| false

ドキュメントは現在のスレッドで検証されていますか?

例:

ドキュメントは検証されていますか?

Threaded.validated?(doc)

パラメーター:

次の値を返します。

  • true | false

    ドキュメントが検証されている場合。



275
276
277
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は275行

デフォルト 検証されていますか?(ドキュメント)
  validation_for(ドキュメント.クラス).include?(ドキュメント._id)
end

#validationsHash

現在のスレッドのすべての検証を取得します。

例:

すべての検証を取得します。

Threaded.validations

次の値を返します。

  • ハッシュ

    現在の検証。



295
296
297
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は295行

デフォルト validation
  スレッド.Current[VALIDATIONS_KEY] ||= {}
end

#validations_for(klass) ⇒ Array

クラスの現在のスレッドに関するすべての検証を取得します。

例:

すべての検証を取得します。

Threaded.validations_for(Person)

パラメーター:

  • klass クラス

    確認する クラス。

次の値を返します。

  • 配列

    現在の検証。



318
319
320
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は318行

デフォルト validation_for(klass)
  validation[klass] ||= []
end

では、_default_scope は(klas) = ブール値

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

指定されたクラスのデフォルトのスコープは現在のスレッドで非表示になっていますか。

例:

指定されたクラスのデフォルトのスコープは非表示にされていますか?

Threaded.without_default_scope?(klass)

パラメーター:

  • klass クラス

    デフォルトのスコープ非表示を確認するモデル。

次の値を返します。



251
252
253
ファイル ' build/mongoid- 8.1 /lib/mongoid/threaded.rb ' の場合は251行

デフォルト without_default_scope は(klass)
  stack(: without_default_scope).include?(klass)
end