Module: Knowledge::Configurable::ClassMethods

Defined in:
lib/knowledge/configurable.rb

Overview

Class Methods to be injected.

Defined Under Namespace

Classes: Config

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object

Syntaxic sugar allowing to access a config var.

Usage

Parameters

Examples:


MyModule[:my_variable] # :foo


96
97
98
# File 'lib/knowledge/configurable.rb', line 96

def [](name)
  configuration.public_send(name.to_sym)
end

#[]=(name, value) ⇒ Object

Syntaxic sugar allowing to set a config var.

Usage

Parameters

Examples:


MyModule[:my_variable] = :foo # :foo


116
117
118
# File 'lib/knowledge/configurable.rb', line 116

def []=(name, value)
  configuration.public_send("#{name}=", value)
end

#configure {|configuration| ... } ⇒ Object

Exposes the configuration allowing to manage it.

Usage

Parameters

Examples:


MyModule.configure do |config|
  config.my_variable = :foo
end

Yields:

  • (configuration)


77
78
79
# File 'lib/knowledge/configurable.rb', line 77

def configure
  yield configuration
end

#setting(name, default: nil) ⇒ Object

Registers a configuration variable with a potential default value

Usage

Parameters

Examples:


setting :my_config
setting :environment, default: :development


55
56
57
58
59
60
# File 'lib/knowledge/configurable.rb', line 55

def setting(name, default: nil)
  configuration.class.send(:attr_accessor, name)
  configuration.public_send("#{name}=", default)

  singleton_class.class_eval { def_delegators :configuration, name, "#{name}=" }
end