Sha256: 8469e2007350a44ba420ac5333b595688459756e19153921b8e1b4070548f960
Contents?: true
Size: 1.27 KB
Versions: 3
Compression:
Stored size: 1.27 KB
Contents
module Eternity class TrackFlatter class << self def flatten(changes) send "flatten_#{changes.first['action']}_#{changes.last['action']}", changes end private def flatten_insert_insert(changes) expand changes.last end def flatten_insert_update(changes) {'action' => INSERT, 'data' => expand(changes.last)['data']} end def flatten_insert_delete(changes) nil end def flatten_update_insert(changes) {'action' => UPDATE, 'data' => expand(changes.last)['data']} end def flatten_update_update(changes) expand changes.last end def flatten_update_delete(changes) expand changes.last end def flatten_delete_insert(changes) {'action' => UPDATE, 'data' => expand(changes.last)['data']} end def flatten_delete_update(changes) {'action' => UPDATE, 'data' => expand(changes.last)['data']} end def flatten_delete_delete(changes) expand changes.last end def expand(change) return change.dup if change.key? 'data' change.dup.tap do |ch| sha1 = ch.delete 'blob' ch['data'] = Blob.read(:data, sha1) if sha1 end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
eternity-4.0.0 | lib/eternity/track_flatter.rb |
eternity-3.0.1 | lib/eternity/track_flatter.rb |
eternity-3.0.0 | lib/eternity/track_flatter.rb |