module Knowledge::Configurable::ClassMethods
Class Methods to be injected.
Public Instance Methods
[](name)
click to toggle source
[]=(name, value)
click to toggle source
Syntaxic sugar allowing to set a config var.
Usage¶ ↑
@example
MyModule[:my_variable] = :foo # :foo
Parameters¶ ↑
@param name [String, Symbol] @param value [any]
@return the value of the config var
# File lib/knowledge/configurable.rb, line 116 def []=(name, value) configuration.public_send("#{name}=", value) end
configure() { |configuration| ... }
click to toggle source
setting(name, default: nil)
click to toggle source
Registers a configuration variable with a potential default value
Usage¶ ↑
@example
setting :my_config setting :environment, default: :development
Parameters¶ ↑
@param name [String, Symbol] the variable's name @param default [any] default value for the variable to define
# 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
Private Instance Methods
configuration()
click to toggle source
@return [Config]
# File lib/knowledge/configurable.rb, line 130 def configuration @configuration ||= Config.new end