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