Sha256: 875aa8ca51841a41988b7077f599297a3d1401411fe835688995f3a35fd84b87

Contents?: true

Size: 684 Bytes

Versions: 1

Compression:

Stored size: 684 Bytes

Contents

module ModelLog
  module Log
    class Processor
      include Initializer

      def data
        case @action
        when :create
          created_data
        when :update
          updated_data
        when :destroy
          destroyed_data
        end
      end

      private

      def default_data
        @resource.changes
      end

      def created_data
        # key => value
        @resource.class.content_columns.map do |column|
          [column.name, @resource.send(column.name)]
        end.to_h
      end

      alias_method :destroyed_data, :created_data

      def updated_data
        # key => [before, after]
        default_data
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
model_log-2.0.0 lib/model_log/log/processor.rb