Sha256: a95901d2960d560adcd6aed02f43deea8169dfbb9eb1f8b26898822e49b18c2d
Contents?: true
Size: 1.13 KB
Versions: 24
Compression:
Stored size: 1.13 KB
Contents
module R10K::Settings::Mixin def self.included(klass) klass.send(:include, InstanceMethods) klass.send(:extend, ClassMethods) end module InstanceMethods # @return [R10K::Settings::Container] A settings container for the given instance. def settings @settings ||= R10K::Settings::Container.new(self.class.settings) end end module ClassMethods # Define a setting and optional default on the extending class. # # @param key [Symbol] # @param default [Object] # # @return [void] 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] def defaults @defaults ||= R10K::Settings::Container.new end # A singleton settings container for storing manual setting configurations # on the extending class. # # @return [R10K::Settings::Container] def settings @settings ||= R10K::Settings::Container.new(defaults) end end end
Version data entries
24 entries across 24 versions & 1 rubygems