Module: Tablesalt::ThreadAccessor

Extended by:
ActiveSupport::Concern, Management
Includes:
StoreInstance
Defined in:
lib/tablesalt/thread_accessor.rb,
lib/tablesalt/thread_accessor/management.rb,
lib/tablesalt/thread_accessor/thread_store.rb,
lib/tablesalt/thread_accessor/store_instance.rb,
lib/tablesalt/thread_accessor/rack_middleware.rb,
lib/tablesalt/thread_accessor/scoped_accessor.rb

Defined Under Namespace

Modules: ClassMethods, Management, StoreInstance Classes: RackMiddleware, ScopedAccessor, ThreadStore

Constant Summary collapse

THREAD_ACCESSOR_STORE_THREAD_KEY =
:__tablesalt_thread_accessor_store__
THREAD_ACCESSOR_STORE_NAMESPACE =

nil by default, gets overridden by ScopedAccessor

nil

Class Method Summary collapse

Methods included from Management

clean_thread_context, store

Methods included from StoreInstance

#__thread_accessor_store_instance__

Class Method Details

.[](scope) ⇒ Module

Returns A ThreadAccessor module to be included into your class.

Examples:

module MyGem
  class MyClass
    include Tablesalt::ThreadAccessor[:my_gem]

    # Stored in a separate thread store for :my_gem, safe from mischievous app developers
    thread_accessor :foo, :my_foo
  end
end

Parameters:

  • scope (String, Symbol)

    A namespace for the thread variables

Returns:

  • (Module)

    A ThreadAccessor module to be included into your class



38
39
40
41
# File 'lib/tablesalt/thread_accessor.rb', line 38

def [](scope)
  @scoped_accessors ||= {}
  @scoped_accessors[scope] ||= ScopedAccessor.new(scope)
end