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