module Topping::Configurable

Mixin to add the ability for a plugin to define configuration. @since 0.0.1

Mixin to add the ability for a plugin to define configuration. @since 0.0.1

Mixin to add the ability for a plugin to define configuration. @since 0.0.1

Attributes

after_config_block[RW]

A block to be executed after configuration is finalized. @return [#call, nil] The block. @since 0.0.1 @api private

configuration_builder[RW]

The plugins's {ConfigurationBuilder} object. @return [ConfigurationBuilder] The configuration builder. @since 0.0.1 @api public

Public Instance Methods

after_config(&block) click to toggle source

Registers a block to be executed after configuration is finalized. @yieldparam config [Configuration] The handler's configuration object. @return [void] @since 0.0.1

# File lib/topping/configurable.rb, line 25
def after_config(&block)
  self.after_config_block = block
end
config(*args, **kwargs, &block) click to toggle source

Sets a configuration attribute on the plugin. @return [void] @since 0.0.1 @see ConfigurationBuilder#config

# File lib/topping/configurable.rb, line 33
def config(*args, **kwargs, &block)
  if block
    configuration_builder.config(*args, **kwargs, &block)
  else
    configuration_builder.config(*args, **kwargs)
  end
end
inherited(klass) click to toggle source

Initializes the configuration builder for any inheriting classes.

Calls superclass method
# File lib/topping/configurable.rb, line 42
def inherited(klass)
  super
  klass.configuration_builder = ConfigurationBuilder.new
end