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