class Asynchronic::DataStore::ScopedStore

Attributes

data_store[R]
scope[R]

Public Class Methods

connect(options) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 9
def self.connect(options)
  data_store = options[:data_store_class].connect(*options[:data_store_connection_args])
  new data_store, options[:scope]
end
new(data_store, scope) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 14
def initialize(data_store, scope)
  @data_store = data_store
  @scope = Key[scope]
end

Public Instance Methods

[](key) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 19
def [](key)
  data_store[scope[key]]
end
[]=(key, value) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 23
def []=(key, value)
  data_store[scope[key]] = value
end
connection_args() click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 45
def connection_args
  [
    {
      data_store_class: data_store.class,
      data_store_connection_args: data_store.connection_args,
      scope: scope
    }
  ]
end
delete(key) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 27
def delete(key)
  data_store.delete scope[key]
end
delete_cascade() click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 31
def delete_cascade
  data_store.delete_cascade scope
end
keys() click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 35
def keys
  data_store.keys
            .select { |k| k.start_with? scope[''] }
            .map { |k| Key[k].remove_first scope.sections.count }
end
synchronize(key, &block) click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 41
def synchronize(key, &block)
  data_store.synchronize(key, &block)
end
to_s() click to toggle source
# File lib/asynchronic/data_store/scoped_store.rb, line 55
def to_s
  "#<#{self.class} @data_store=#{data_store} @scope=#{scope}>"
end