Class: ActiveScaffold::Config::Base::UserSettings
- Inherits:
-
Object
- Object
- ActiveScaffold::Config::Base::UserSettings
show all
- Defined in:
- lib/active_scaffold/config/base.rb
Class Method Summary
collapse
-
.session_attr(*names) ⇒ Object
define setter and getter for names values will be saved in session if store_user_settings is enabled, in other case for current request only getter will return value set with setter, or value from conf.
-
.user_attr(*names) ⇒ Object
define setter and getter for names values will be saved for current request only getter will return value set with setter, or value from conf.
Instance Method Summary
collapse
Constructor Details
#initialize(conf, storage, params, action = :base) ⇒ UserSettings
Returns a new instance of UserSettings.
84
85
86
87
88
89
90
91
92
|
# File 'lib/active_scaffold/config/base.rb', line 84
def initialize(conf, storage, params, action = :base)
@storage = storage
@params = params
@conf = conf
@action = action.to_s
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
120
121
122
|
# File 'lib/active_scaffold/config/base.rb', line 120
def method_missing(name, *args)
proxy_to_conf?(name, true) ? @conf.send(name, *args) : super
end
|
Class Method Details
.session_attr(*names) ⇒ Object
define setter and getter for names values will be saved in session if store_user_settings is enabled, in other case for current request only getter will return value set with setter, or value from conf
77
78
79
80
81
82
|
# File 'lib/active_scaffold/config/base.rb', line 77
def self.session_attr(*names)
names.each do |name|
define_method(name) { |value| self[name] = value }
define_method(name) { key?(name) ? self[name] : @conf.send(name) }
end
end
|
.user_attr(*names) ⇒ Object
define setter and getter for names values will be saved for current request only getter will return value set with setter, or value from conf
63
64
65
66
67
68
69
70
71
|
# File 'lib/active_scaffold/config/base.rb', line 63
def self.user_attr(*names)
attr_writer(*names)
names.each do |name|
define_method(name) do
instance_variable_defined?(:"@#{name}") ? instance_variable_get(:"@#{name}") : @conf.send(name)
end
end
end
|
Instance Method Details
102
103
104
|
# File 'lib/active_scaffold/config/base.rb', line 102
def [](key)
@storage[@action][key.to_s] if @action && @storage[@action]
end
|
#[]=(key, value) ⇒ Object
106
107
108
109
110
111
112
113
114
|
# File 'lib/active_scaffold/config/base.rb', line 106
def []=(key, value)
@storage[@action] ||= {}
if value.present?
@storage[@action][key.to_s] = value
else
@storage[@action].delete key.to_s
@storage.delete @action if @storage[@action].empty?
end
end
|
98
99
100
|
# File 'lib/active_scaffold/config/base.rb', line 98
def core
@conf.core.user
end
|
#key?(key) ⇒ Boolean
116
117
118
|
# File 'lib/active_scaffold/config/base.rb', line 116
def key?(key)
@storage[@action].key? key.to_s if @action && @storage[@action]
end
|
#proxy_to_conf?(name, include_all) ⇒ Boolean
128
129
130
|
# File 'lib/active_scaffold/config/base.rb', line 128
def proxy_to_conf?(name, include_all)
name !~ /=$/ && @conf.respond_to?(name, include_all)
end
|
#respond_to_missing?(name, include_all = false) ⇒ Boolean
124
125
126
|
# File 'lib/active_scaffold/config/base.rb', line 124
def respond_to_missing?(name, include_all = false)
proxy_to_conf?(name, include_all) || super
end
|
94
95
96
|
# File 'lib/active_scaffold/config/base.rb', line 94
def user
self
end
|