Sha256: 9b21305a21ba98d43a0301ab053c582357a79528e89e294d1bd166598f73b6e7
Contents?: true
Size: 854 Bytes
Versions: 5
Compression:
Stored size: 854 Bytes
Contents
module Eternity class Tracker Changes = Restruct::NestedHash.new CollectionTracker extend Forwardable def_delegators :changes, :[], :to_h, :empty?, :destroy attr_reader :repository def initialize(repository) @repository = repository @changes = Changes.new redis: Eternity.redis, id: repository.id[:changes] end def count changes.inject(0) do |sum, (collection, tracker)| sum + tracker.count end end alias_method :revert, :destroy alias_method :clear, :destroy def flatten changes.each_with_object({}) do |(collection, tracker), hash| collection_changes = tracker.flatten hash[collection] = collection_changes unless collection_changes.empty? end end private attr_reader :changes end end
Version data entries
5 entries across 5 versions & 1 rubygems