Sha256: b253824c9684b6df055ead0fecd1a825a696adb07310e1733dc53a4f5e6eae98
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 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) if settings.default.is_a?(Proc) set(name, settings.default.call) else set(name, deep_dup(settings.default)) end end end private def deep_dup(object) Marshal.load(Marshal.dump(object)) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
light-services-2.0.0.rc8 | lib/light/services/collection/base.rb |