Sha256: a346f6d6fd0e52a1cd3be132685f5de1e6222a6a696d0ee9d3bcdf33e8d6a0c1

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

require 'rails/generators'
require 'rails/generators/migration'
require 'active_record'
require 'rails/generators/active_record'
require 'generators/audited/migration'

module Audited
  module Generators
    class UpgradeGenerator < Rails::Generators::Base
      include Rails::Generators::Migration
      extend Audited::Generators::Migration

      source_root File.expand_path("../templates", __FILE__)

      def copy_templates
        migrations_to_be_applied do |m|
          migration_template "#{m}.rb", "db/migrate/#{m}.rb"
        end
      end

      private

      def migrations_to_be_applied
        Audited::Audit.reset_column_information
        columns = Audited::Audit.columns.map(&:name)

        yield :add_comment_to_audits unless columns.include?('comment')

        if columns.include?('changes')
          yield :rename_changes_to_audited_changes
        end

        unless columns.include?('remote_address')
          yield :add_remote_address_to_audits
        end

        unless columns.include?('request_uuid')
          yield :add_request_uuid_to_audits
        end

        unless columns.include?('association_id')
          if columns.include?('auditable_parent_id')
            yield :rename_parent_to_association
          else
            unless columns.include?('associated_id')
              yield :add_association_to_audits
            end
          end
        end

        if columns.include?('association_id')
          yield :rename_association_to_associated
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
audited-hp-4.3.1 lib/generators/audited/upgrade_generator.rb
audited-hp-4.3.0 lib/generators/audited/upgrade_generator.rb
audited-4.3.0 lib/generators/audited/upgrade_generator.rb