Sha256: f6d21ff03cae9cee3a0fadabe7df2674f24f681e6d169012428161ea1b1c2eab
Contents?: true
Size: 785 Bytes
Versions: 1
Compression:
Stored size: 785 Bytes
Contents
class ChangeTracker < Version attr_reader :version def initialize(version) @version = version end def get_changes changed_attributes.merge(marked_for_removal).merge(changed_children) end private def changed_attributes version_attributes.each_with_object({}) do |v, h| h[v.name] = { new_value: v.new_value, old_value: v.old_value } end end def marked_for_removal version.marked_for_removal? ? { marked_for_removal: true } : {} end def changed_children version_children.each_with_object({}) do |v, h| if h[v.association_name].present? h[v.association_name] += [{ id: v.versionable_id}.merge(v.changes)] else h[v.association_name] = [{ id: v.versionable_id}.merge(v.changes)] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
controlled_versioning-0.8.0 | lib/controlled_versioning/change_tracker.rb |