Class: ZeevexThreadsafe::Rails::RequestGlobals
- Inherits:
-
Object
- Object
- ZeevexThreadsafe::Rails::RequestGlobals
show all
- Defined in:
- lib/zeevex_threadsafe/rails/request_globals.rb
Defined Under Namespace
Modules: Accessors, Controller
Constant Summary
collapse
- REQUEST_VARNAME =
"_zx_rg_request"
- INSTANCE_VARNAME =
"@_zx_request_globals"
Class Method Summary
collapse
Class Method Details
.[](name) ⇒ Object
26
27
28
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 26
def [](name)
hash[name]
end
|
.[]=(name, val) ⇒ Object
30
31
32
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 30
def []=(name, val)
hash(true)[name] = val
end
|
.define_request_global_accessors(base, name, key = nil) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 40
def define_request_global_accessors(base, name, key = nil)
key ||= name
base.class_eval do
define_method name do
ZeevexThreadsafe::Rails::RequestGlobals[key]
end
define_method (name.to_s + "=").to_sym do |value|
ZeevexThreadsafe::Rails::RequestGlobals[key] = value
end
end
end
|
.request ⇒ Object
17
18
19
20
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 17
def request
ref = Thread.current[REQUEST_VARNAME]
ref && ref.class == WeakRef && ref.weakref_alive? ? ref.__getobj__ : nil
end
|
.request=(request) ⇒ Object
22
23
24
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 22
def request=(request)
Thread.current[REQUEST_VARNAME] = (request ? WeakRef.new(request) : nil)
end
|
.reset ⇒ Object
34
35
36
37
|
# File 'lib/zeevex_threadsafe/rails/request_globals.rb', line 34
def reset
hash && hash.clear
Thread.current[REQUEST_VARNAME] = nil
end
|