Module: ClassConfig
- Defined in:
- lib/class_config.rb
Constant Summary collapse
- VERSION =
'0.0.2'
Instance Method Summary collapse
- #after_config(&block) ⇒ Object
- #attr_config(name, default_value = nil) ⇒ Object
- #configuration ⇒ Object
- #configure(&block) ⇒ Object
- #inherited(subclass) ⇒ Object
- #restore_default_configuration ⇒ Object
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 |
#configuration ⇒ Object
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_configuration ⇒ Object
30 31 32 |
# File 'lib/class_config.rb', line 30 def restore_default_configuration configuration_values.clear end |