Sha256: 6f05e80e68f036c931b84bbc084c62e7d759ed861b415bee370e2d6162117152

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

module ActiveAdmin
  module Audit
    class ContentVersion < PaperTrail::Version
      serialize :object, VersionSnapshot
      serialize :object_changes, VersionSnapshot

      serialize :additional_objects, VersionSnapshot
      serialize :additional_objects_changes, VersionSnapshot

      def object_changes
       ignore = %w(id created_at updated_at)
       super.reject { |k, _| ignore.include?(k) }
      end

      def object_snapshot
        object.materialize(item_class)
      end

      def additional_objects_snapshot
        additional_objects.materialize(item_class)
      end

      def object_snapshot_changes
        object_changes.materialize(item_class)
      end

      def additional_objects_snapshot_changes
        additional_objects_changes.materialize(item_class)
      end

      def who
        Audit.configuration.user_class_name.to_s.classify.constantize.find_by(id: whodunnit)
      end

      def item_class
        item_type.constantize
      rescue NameError
        ActiveRecord::Base
      end

      def item
        super
      rescue NameError
        nil
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activeadmin-audit-0.1.4 app/models/active_admin/audit/content_version.rb
activeadmin-audit-0.1.2 app/models/active_admin/audit/content_version.rb
activeadmin-audit-0.1.1 app/models/active_admin/audit/content_version.rb