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
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
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
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