lib/asynchronic/data_store/scoped_store.rb in asynchronic-3.0.3 vs lib/asynchronic/data_store/scoped_store.rb in asynchronic-4.0.0

- old
+ new

@@ -2,60 +2,59 @@ module DataStore class ScopedStore include Helper - attr_reader :data_store - attr_reader :scope - + attr_reader :data_store, :scope + + def self.connect(options) + data_store = options[:data_store_class].connect(*options[:data_store_connection_args]) + new data_store, options[:scope] + end + def initialize(data_store, scope) @data_store = data_store @scope = Key[scope] end def [](key) - @data_store[@scope[key]] + data_store[scope[key]] end def []=(key, value) - @data_store[@scope[key]] = value + data_store[scope[key]] = value end def delete(key) - @data_store.delete @scope[key] + data_store.delete scope[key] end def delete_cascade - @data_store.delete_cascade @scope + data_store.delete_cascade scope end def keys - @data_store.keys. - select { |k| k.start_with? @scope[''] }. - map { |k| Key[k].remove_first @scope.sections.count } + data_store.keys + .select { |k| k.start_with? scope[''] } + .map { |k| Key[k].remove_first scope.sections.count } end def synchronize(key, &block) data_store.synchronize(key, &block) end def connection_args [ { - data_store_class: @data_store.class, - data_store_connection_args: @data_store.connection_args, - scope: @scope + 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}>" + "#<#{self.class} @data_store=#{data_store} @scope=#{scope}>" end end end end \ No newline at end of file