Module: ActiveSupport::Configurable::ClassMethods

Defined in:
lib/active_support/configurable.rb

Instance Method Summary collapse

Instance Method Details

#configObject


11
12
13
# File 'lib/active_support/configurable.rb', line 11

def config
  @_config ||= ActiveSupport::InheritableOptions.new(superclass.respond_to?(:config) ? superclass.config : {})
end

#config_accessor(*names) ⇒ Object

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

31
32
33
34
35
36
37
38
39
40
41
# File 'lib/active_support/configurable.rb', line 31

def config_accessor(*names)
  names.each do |name|
    code, line = <<-RUBY, __LINE__ + 1
      def #{name}; config.#{name}; end
      def #{name}=(value); config.#{name} = value; end
    RUBY

    singleton_class.class_eval code, __FILE__, line
    class_eval code, __FILE__, line
  end
end

#configure {|config| ... } ⇒ Object

Yields:


15
16
17
# File 'lib/active_support/configurable.rb', line 15

def configure
  yield config
end