Module: Topping::Configurable

Included in:
Branch::ChildClassMethods
Defined in:
lib/topping/configurable.rb,
lib/topping/configurable/hq.rb,
lib/topping/configurable/branch.rb

Overview

Mixin to add the ability for a plugin to define configuration.

Since:

  • 0.0.1

Defined Under Namespace

Modules: Branch, HQ

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#after_config_block#call?

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

A block to be executed after configuration is finalized.

Returns:

  • (#call, nil)

    The block.

Since:

  • 0.0.1



13
14
15
# File 'lib/topping/configurable.rb', line 13

def after_config_block
  @after_config_block
end

#configuration_builderConfigurationBuilder

The plugins’s Topping::ConfigurationBuilder object.

Returns:

Since:

  • 0.0.1



19
20
21
# File 'lib/topping/configurable.rb', line 19

def configuration_builder
  @configuration_builder
end

Instance Method Details

#after_config {|config| ... } ⇒ void

This method returns an undefined value.

Registers a block to be executed after configuration is finalized.

Yield Parameters:

  • config (Configuration)

    The handler’s configuration object.

Since:

  • 0.0.1



25
26
27
# File 'lib/topping/configurable.rb', line 25

def after_config(&block)
  self.after_config_block = block
end

#config(*args, **kwargs, &block) ⇒ void

This method returns an undefined value.

Sets a configuration attribute on the plugin.

See Also:

Since:

  • 0.0.1



33
34
35
36
37
38
39
# 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) ⇒ Object

Initializes the configuration builder for any inheriting classes.

Since:

  • 0.0.1



42
43
44
45
# File 'lib/topping/configurable.rb', line 42

def inherited(klass)
  super
  klass.configuration_builder = ConfigurationBuilder.new
end