Sha256: a204e836ea56f7412e286ac5db8bdd67d95c525fe04d1c3ba8d3d72afa6371e5
Contents?: true
Size: 1.36 KB
Versions: 3
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true module DevSuite module Utils module Store require_relative "config" require_relative "driver" class Store def initialize(**options) @driver = initialize_driver(**options) end def set(key, value) @driver.set(key, value) end def fetch(key) @driver.fetch(key) end def delete(key) @driver.delete(key) end def import(source) @driver.import(source) end def export(destination) @driver.export(destination) end def clear @driver.clear end private def initialize_driver(**options) return Config.configuration.driver unless options.key?(:driver) build_driver(options) end def build_driver(options) Driver.build_component(options.fetch(:driver), **options.except(:driver)) end end class << self # Retrieve the singleton store instance def instance @store ||= Store.new end # Reset the singleton store instance def reset! @store = nil end # Create a new store instance (isolated from the singleton) def create(**options) Store.new(**options) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dev_suite-0.2.10 | lib/dev_suite/utils/store/store.rb |
dev_suite-0.2.9 | lib/dev_suite/utils/store/store.rb |
dev_suite-0.2.8 | lib/dev_suite/utils/store/store.rb |