module ActiveAdmin::Audit::HasVersions
Public Instance Methods
additional_objects_snapshot_changes()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 88 def additional_objects_snapshot_changes prev_version = versions.last old_snapshot = prev_version.try(:additional_objects) || VersionSnapshot.new new_snapshot = additional_objects_snapshot old_snapshot.diff(new_snapshot) end
latest_versions(count = 5)
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 84 def latest_versions(count = 5) versions.reorder(created_at: :desc).limit(count).rewhere(item_type: self.class.name) end
Private Instance Methods
cache_version_additional_objects_and_changes()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 107 def cache_version_additional_objects_and_changes @version_additional_objects_and_changes_cache ||= paper_trail.merge_metadata_into({}) end
cache_version_object()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 99 def cache_version_object @version_object_cache ||= paper_trail.object_attrs_for_paper_trail end
cache_version_object_changes()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 103 def cache_version_object_changes @version_object_changes_cache ||= paper_trail.changes end
clear_version_cache()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 111 def clear_version_cache @version_object_cache = nil @version_object_changes_cache = nil @version_additional_objects_and_changes_cache = nil end
generate_version!()
click to toggle source
# File lib/active_admin/audit/has_versions.rb, line 117 def generate_version! data = { event: @event_for_paper_trail, object: cache_version_object.to_json, object_changes: cache_version_object_changes.to_json, whodunnit: PaperTrail.whodunnit.try(:id), item_type: self.class.name, item_id: id, } PaperTrail::Version.create! data.merge!(cache_version_additional_objects_and_changes) clear_version_cache end