module R10K::Settings::Mixin::ClassMethods

Public Instance Methods

def_setting_attr(key, default = nil) click to toggle source

Define a setting and optional default on the extending class.

@param key [Symbol] @param default [Object]

@return [void]

# File lib/r10k/settings/mixin.rb, line 24
def def_setting_attr(key, default = nil)
  defaults.add_valid_key(key)
  defaults[key] = default if default
end
defaults() click to toggle source

A singleton settings container for storing immutable default configuration on the extending class.

@return [R10K::Settings::Container]

# File lib/r10k/settings/mixin.rb, line 33
def defaults
  @defaults ||= R10K::Settings::Container.new
end
inherited(subclass) click to toggle source

Allow subclasses to use the settings of the parent class as default values

@return [void]

# File lib/r10k/settings/mixin.rb, line 48
def inherited(subclass)
  subclass.instance_eval do
    @settings = R10K::Settings::Container.new(superclass.settings)
  end
end
settings() click to toggle source

A singleton settings container for storing manual setting configurations on the extending class.

@return [R10K::Settings::Container]

# File lib/r10k/settings/mixin.rb, line 41
def settings
  @settings ||= R10K::Settings::Container.new(defaults)
end