Module: Configurable

Defined in:
lib/concerns/configurable.rb

Class Method Summary collapse

Class Method Details

.with(*args) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/concerns/configurable.rb', line 4

def self.with(*args)
  config_class = Class.new do
    attr_accessor *args
  end

  Module.new do
    extend ActiveSupport::Concern
    class_methods do
      define_method :configure do |&block|
        block.call config
      end
  
      define_method :config do
        @config ||= config_class.new
      end
    end
  end
end