Module: ClassConfig

Defined in:
lib/class_config.rb

Constant Summary collapse

VERSION =
'0.0.2'

Instance Method Summary collapse

Instance Method Details

#after_config(&block) ⇒ Object



22
23
24
# File 'lib/class_config.rb', line 22

def after_config(&block)
  @after_config_callback = block
end

#attr_config(name, default_value = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/class_config.rb', line 5

def attr_config(name, default_value=nil)
  configuration_defaults[name.to_sym] = default_value

  define_singleton_method name do
    configuration[name.to_sym]
  end

  define_singleton_method "#{name}=" do |value|
    configuration_values[name.to_sym] = value
  end
end

#configurationObject



26
27
28
# File 'lib/class_config.rb', line 26

def configuration
  configuration_defaults.merge configuration_values
end

#configure(&block) ⇒ Object



17
18
19
20
# File 'lib/class_config.rb', line 17

def configure(&block)
  tap &block
  @after_config_callback.call self if @after_config_callback
end

#inherited(subclass) ⇒ Object



34
35
36
37
38
# File 'lib/class_config.rb', line 34

def inherited(subclass)
  %w(configuration_defaults configuration_values after_config_callback).each do |var|
    subclass.instance_variable_set "@#{var}", instance_variable_get("@#{var}")
  end
end

#restore_default_configurationObject



30
31
32
# File 'lib/class_config.rb', line 30

def restore_default_configuration
  configuration_values.clear
end