Sha256: 6f6569d16512b1d63dcff1fe76917ee42886eba1a121c24064a773581e3a312c

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

module Enginery
  class Migrator
    class MigratorInstance < ActiveRecord::Migration
      def up
        <?rb if @create_table ?>
        create_table :#{ @create_table } do |t|
        <?rb @create_columns.each do |(n,t)|?>
          t.#{ t } :#{ n }
        <?rb end ?>
        end
        <?rb elsif @update_table && @create_columns.any? ?>
        change_table :#{ @update_table } do |t|
        <?rb @create_columns.each do |(n,t)|?>
          t.#{ t } :#{ n }
        <?rb end ?>
        end
        <?rb end ?>
        
        <?rb @update_columns.each do |(n,t)|?>
        change_column :#{ @update_table }, :#{ n }, :#{ t }
        <?rb end ?>
        
        <?rb @rename_columns.each do |(n,nn)|?>
        rename_column :#{ @update_table }, :#{ n }, :#{ nn }
        <?rb end ?>
      end

      def down
        <?rb if @create_table ?>
        drop_table :#{ @create_table }
        <?rb elsif @update_table ?>

        <?rb @create_columns.each do |(n,t)|?>
        remove_column :#{ @update_table }, :#{ n }
        <?rb end ?>
        
        <?rb if (update_columns = @update_columns.select {|n,t,ct| ct}).any?
        update_columns.each do |(n,t,ct)|?>
        change_column :#{ @update_table }, :#{ n }, :#{ ct }
        <?rb end
        end ?>

        <?rb @rename_columns.each do |(n,nn)|?>
        rename_column :#{ @update_table }, :#{ nn }, :#{ n }
        <?rb end ?>

        <?rb end ?>
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
my_enginery-0.2.8 app/migrations/ActiveRecord.erb
enginery-0.3.0 app/migrations/ActiveRecord.erb