module ActiveSupport::Configurable::ClassMethods

Public Instance Methods

config() click to toggle source
# File lib/active_support/configurable.rb, line 29
def config
  @_config ||= if respond_to?(:superclass) && superclass.respond_to?(:config)
    superclass.config.inheritable_copy
  else
    # create a new "anonymous" class that will host the compiled reader methods
    Class.new(Configuration).new
  end
end
config_accessor(*names) click to toggle source

Allows you to add shortcut so that you don't have to refer to attribute through config. Also look at the example for config to contrast.

class User
  include ActiveSupport::Configurable
  config_accessor :allowed_access
end

user = User.new
user.allowed_access = true
user.allowed_access # => true
# File lib/active_support/configurable.rb, line 54
def config_accessor(*names)
  options = names.extract_options!

  names.each do |name|
    reader, line = "def #{name}; config.#{name}; end", __LINE__
    writer, line = "def #{name}=(value); config.#{name} = value; end", __LINE__

    singleton_class.class_eval reader, __FILE__, line
    singleton_class.class_eval writer, __FILE__, line
    class_eval reader, __FILE__, line unless options[:instance_reader] == false
    class_eval writer, __FILE__, line unless options[:instance_writer] == false
  end
end
configure() { |config| ... } click to toggle source
# File lib/active_support/configurable.rb, line 38
def configure
  yield config
end