class ActiveScaffold::Config::Base::UserSettings
Public Class Methods
new(conf, storage, params, action = :base)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 99 def initialize(conf, storage, params, action = :base) # the session hash relevant to this action @storage = storage # all the request params @params = params # the configuration object for this action @conf = conf @action = action.to_s end
session_attr(*names)
click to toggle source
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
# File lib/active_scaffold/config/base.rb, line 92 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)
click to toggle source
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
# File lib/active_scaffold/config/base.rb, line 79 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
Public Instance Methods
[](key)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 117 def [](key) @storage[@action][key.to_s] if @action && @storage[@action] end
[]=(key, value)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 121 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
core()
click to toggle source
# File lib/active_scaffold/config/base.rb, line 113 def core @conf.core.user end
key?(key)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 131 def key?(key) @storage[@action].key? key.to_s if @action && @storage[@action] end
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/active_scaffold/config/base.rb, line 135 def method_missing(name, *args) proxy_to_conf?(name, true) ? @conf.send(name, *args) : super end
proxy_to_conf?(name, include_all)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 143 def proxy_to_conf?(name, include_all) name !~ /=$/ && @conf.respond_to?(name, include_all) end
respond_to_missing?(name, include_all = false)
click to toggle source
Calls superclass method
# File lib/active_scaffold/config/base.rb, line 139 def respond_to_missing?(name, include_all = false) proxy_to_conf?(name, include_all) || super end
user()
click to toggle source
# File lib/active_scaffold/config/base.rb, line 109 def user self end
Private Instance Methods
proxy_columns(columns)
click to toggle source
# File lib/active_scaffold/config/base.rb, line 149 def proxy_columns(columns) proxy = ::CowProxy.wrap(columns) proxy.action = self proxy end