Sha256: 122e5626bb0083e9899e4a1350cc542187a77ba921e4735017d7a13dc3d1d2bc
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module Asynchronic module DataStore class ScopedStore include Helper attr_reader :data_store attr_reader :scope def initialize(data_store, scope) @data_store = data_store @scope = Key.new scope end def [](key) @data_store[@scope[key]] end def []=(key, value) @data_store[@scope[key]] = value end def delete(key) @data_store.delete @scope[key] end def keys @data_store.keys. select { |k| k.start_with? @scope[''] }. map { |k| Key.new(k).remove_first @scope.sections.count } end def connection_args [ { data_store_class: @data_store.class, data_store_connection_args: @data_store.connection_args, scope: @scope } ] end def self.connect(*args) data_store = args[0][:data_store_class].connect *args[0][:data_store_connection_args] new data_store, args[0][:scope] end def to_s "#<#{self.class} @data_store=#{@data_store} @scope=#{@scope}>" end end end end
Version data entries
4 entries across 4 versions & 1 rubygems