Module: Wardrobe::Plugins::Configurable::ClassMethods

Extended by:
Forwardable
Defined in:
lib/wardrobe/plugins/configurable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



14
15
16
17
18
19
# File 'lib/wardrobe/plugins/configurable.rb', line 14

def self.extended(base)
  super
  base.wardrobe_stores do
    add_store(:configurable_store, ConfigurableStore)
  end
end

Instance Method Details

#configurable(name, blk_name, klass) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/wardrobe/plugins/configurable.rb', line 21

def configurable(name, blk_name, klass)
  wardrobe_stores do
    @configurable_store = configurable_store.register(name, klass)
  end

  define_singleton_method(name) do
    wardrobe_stores.configurable_store[name]
  end

  define_singleton_method(blk_name) do |&blk|
    wardrobe_stores do
      @configurable_store = configurable_store.update(name, &blk)
    end
  end
end