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.
85
86
87
88
89
90
91
92
93
|
# File 'lib/active_scaffold/config/base.rb', line 85
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) ⇒ Object
125
126
127
|
# File 'lib/active_scaffold/config/base.rb', line 125
def method_missing(name, *)
proxy_to_conf?(name, true) ? @conf.send(name, *) : 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
78
79
80
81
82
83
|
# File 'lib/active_scaffold/config/base.rb', line 78
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
64
65
66
67
68
69
70
71
72
|
# File 'lib/active_scaffold/config/base.rb', line 64
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
107
108
109
|
# File 'lib/active_scaffold/config/base.rb', line 107
def [](key)
@storage[@action][key.to_s] if @action && @storage[@action]
end
|
#[]=(key, value) ⇒ Object
111
112
113
114
115
116
117
118
119
|
# File 'lib/active_scaffold/config/base.rb', line 111
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
|
99
100
101
|
# File 'lib/active_scaffold/config/base.rb', line 99
def core
@conf.core.user
end
|
#key?(key) ⇒ Boolean
121
122
123
|
# File 'lib/active_scaffold/config/base.rb', line 121
def key?(key)
@storage[@action].key? key.to_s if @action && @storage[@action]
end
|
#label(model = nil) ⇒ Object
103
104
105
|
# File 'lib/active_scaffold/config/base.rb', line 103
def label(model = nil)
@conf.label(model, core: core)
end
|
#proxy_to_conf?(name, include_all) ⇒ Boolean
133
134
135
|
# File 'lib/active_scaffold/config/base.rb', line 133
def proxy_to_conf?(name, include_all)
name !~ /=$/ && @conf.respond_to?(name, include_all)
end
|
#respond_to_missing?(name, include_all = false) ⇒ Boolean
129
130
131
|
# File 'lib/active_scaffold/config/base.rb', line 129
def respond_to_missing?(name, include_all = false)
proxy_to_conf?(name, include_all) || super
end
|
95
96
97
|
# File 'lib/active_scaffold/config/base.rb', line 95
def user
self
end
|