Sha256: 0f6150f563255be2f109b67d58a78cf58a5c2bae01de009c714ac252a66b54d1
Contents?: true
Size: 1.09 KB
Versions: 4
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true # Collection to store arguments and outputs values module Light module Services module Collection class Base # Includes extend Forwardable # Settings def_delegators :@storage, :key?, :to_h def initialize(instance, storage = {}) @instance = instance @storage = storage return if storage.is_a?(Hash) raise Light::Services::ArgTypeError, "#{instance.class} - arguments must be a Hash" end def set(key, value) @storage[key] = value end def get(key) @storage[key] end def [](key) get(key) end def []=(key, value) set(key, value) end def load_defaults settings_collection.each do |name, settings| next if !settings.default_exists || key?(name) set(name, deep_dup(settings.default)) end end private def deep_dup(object) Marshal.load(Marshal.dump(object)) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems