class Sequel::MigrationAlterTableReverser

Handles reversing an alter_table block in a reversible migration.

def add_column(*args)

def add_column(*args)
  @actions << [:drop_column, args.first]
end

def add_constraint(*args)

def add_constraint(*args)
  @actions << [:drop_constraint, args.first]
end

def add_foreign_key(*args)

def add_foreign_key(*args)
  raise if args.first.is_a?(Array)
  @actions << [:drop_column, args.first]
end

def add_index(*args)

def add_index(*args)
  @actions << [:drop_index, *args]
end

def initialize

def initialize
  @actions = []
end

def rename_column(name, new_name)

def rename_column(name, new_name)
  @actions << [:rename_column, new_name, name]
end

def reverse(&block)

def reverse(&block)
  instance_eval(&block)
  actions = @actions.reverse
  Proc.new{actions.each{|a| send(*a)}}
end