lib/eternity/repository.rb in eternity-0.0.5 vs lib/eternity/repository.rb in eternity-0.1.0
- old
+ new
@@ -5,14 +5,14 @@
def initialize(name, options={})
@name = name.to_s
@id = Eternity.keyspace[:repository][@name]
@tracker = Tracker.new self
- @current = Restruct::Hash.new redis: Eternity.redis, id: id[:current]
- @branches = Restruct::Hash.new redis: Eternity.redis, id: id[:branches]
- @locker = Locky.new @name, Eternity.locker_storage
- @default_branch = options.fetch(:default_branch) { 'master' }.to_s
+ @current = Restruct::Hash.new connection: Eternity.connection, id: id[:current]
+ @branches = Restruct::Hash.new connection: Eternity.connection, id: id[:branches]
+ @locker = Eternity.locker_for @name
+ @default_branch = options.fetch(:default_branch, 'master').to_s
end
def [](collection)
tracker[collection]
end
@@ -167,9 +167,17 @@
def restore(dump)
current.merge! dump['current']
branches.merge! dump['branches']
self.delta = dump['delta']
+ end
+
+ def self.all
+ sections_count = Eternity.keyspace[:repository].sections.count
+ names = Eternity.connection.call('KEYS', Eternity.keyspace[:repository]['*']).map do |key|
+ Restruct::Id.new(key).sections[sections_count]
+ end.uniq
+ names.map { |name| new name }
end
private
attr_reader :tracker, :current, :locker
\ No newline at end of file