class Eternity::CollectionTracker

Constants

Changes

Attributes

changes[R]

Public Class Methods

new(options) click to toggle source
# File lib/eternity/collection_tracker.rb, line 9
def initialize(options)
  @changes = Changes.new options
end

Public Instance Methods

delete(id) click to toggle source
# File lib/eternity/collection_tracker.rb, line 21
def delete(id)
  changes[id].delete
end
flatten() click to toggle source
# File lib/eternity/collection_tracker.rb, line 35
def flatten
  changes.each_with_object({}) do |(id, tracker), hash|
    change = tracker.flatten
    hash[id] = change if change
  end
end
insert(id, data) click to toggle source
# File lib/eternity/collection_tracker.rb, line 13
def insert(id, data)
  changes[id].insert data
end
revert(id) click to toggle source
# File lib/eternity/collection_tracker.rb, line 25
def revert(id)
  changes[id].revert
end
revert_all() click to toggle source
# File lib/eternity/collection_tracker.rb, line 29
def revert_all
  locker.lock! :revert_all do
    changes.destroy
  end
end
update(id, data) click to toggle source
# File lib/eternity/collection_tracker.rb, line 17
def update(id, data)
  changes[id].update data
end

Private Instance Methods

locker() click to toggle source
# File lib/eternity/collection_tracker.rb, line 46
def locker
  Eternity.locker_for repository_name
end
repository_name() click to toggle source
# File lib/eternity/collection_tracker.rb, line 50
def repository_name
  changes.id.sections.reverse[2]
end