class Config::Configuration

The main configuration backbone

Public Class Methods

new(**attributes) click to toggle source

Accepts configuration options, initializing a module that can be used to extend the necessary class with the provided config methods

# File lib/config/configuration.rb, line 7
def initialize(**attributes)
  attributes.each do |name, default|
    define_reader(name, default)
    define_writer(name)
  end
end

Private Instance Methods

define_reader(name, default) click to toggle source
# File lib/config/configuration.rb, line 16
def define_reader(name, default)
  variable = :"@#{name}"

  define_method(name) do
    if instance_variable_defined?(variable)
      instance_variable_get(variable)
    else
      default
    end
  end
end
define_writer(name) click to toggle source
# File lib/config/configuration.rb, line 28
def define_writer(name)
  variable = :"@#{name}"

  define_method("#{name}=") do |value|
    instance_variable_set(variable, value)
  end
end