Sha256: 0cd53c6b5ff6f7be410a5eab4cfdc2b54baa4020bee294fdbaf3d1151b29926d

Contents?: true

Size: 1.75 KB

Versions: 7

Compression:

Stored size: 1.75 KB

Contents

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

module ActsAsAudited
  module Generators
    class UpgradeGenerator < Rails::Generators::Base
      include Rails::Generators::Migration

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

      # Implement the required interface for Rails::Generators::Migration.
      def self.next_migration_number(dirname) #:nodoc:
        next_migration_number = current_migration_number(dirname) + 1
        if ActiveRecord::Base.timestamped_migrations
          [Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
        else
          "%.3d" % next_migration_number
        end
      end

      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
        Audit.reset_column_information
        columns = ::Audit.columns.map(&:name)

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

        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?( '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

7 entries across 7 versions & 2 rubygems

Version Path
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/acts_as_audited-2.1.0/lib/generators/acts_as_audited/upgrade_generator.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/acts_as_audited-2.1.0/lib/generators/acts_as_audited/upgrade_generator.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/acts_as_audited-2.1.0/lib/generators/acts_as_audited/upgrade_generator.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/acts_as_audited-2.1.0/lib/generators/acts_as_audited/upgrade_generator.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/acts_as_audited-2.1.0/lib/generators/acts_as_audited/upgrade_generator.rb
acts_as_audited-2.1.0 lib/generators/acts_as_audited/upgrade_generator.rb
acts_as_audited-2.0.0 lib/generators/acts_as_audited/upgrade_generator.rb