Method: ConfigurationDsl#configure_with

Defined in:
lib/configuration_dsl.rb

#configure_with(configuration_module, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/configuration_dsl.rb', line 10

def configure_with(configuration_module, &block)
  @configuration_dsl ||= Impl.new(self)
  @configuration_dsl.module = configuration_module
  @configuration_dsl.callback = block if block_given?
  @configuration_dsl.default_configuration!
  
  # Automatically define setters.
  @configuration_dsl.module.module_eval do
    self::DEFAULTS.keys.each do |name|
      next if method_defined?(name) # Don't override custom setters.
      module_eval "        def \#{name}(value)\n          configuration.\#{name} = value\n        end\n      code\n    end\n  end\nend\n"