unit_of_time =
case num
when 0..60: "second"
when 0..60 * 60: "minute"
when 0..60 * 60 * 24: "hour"
else "day"
end
unit_of_time = case
when num < 60: "second"
when num < 60 * 60: "minute"
when num < 60 * 60 * 24: "hour"
else "day"
end
module AutoDropMigration
module Migration
# Drop all tables and indexes created by the migration
# class AddUser < ActiveRecord::Migration
# def self.up
# ...
# end
#
# def self.down
# drop_created_tables_and_indexes(__FILE__)
# end
#
def drop_created_tables_and_indexes(migration)
File.open(migration) do |fp|
fp.readlines.reverse.each do |line|
if line =~ /^\s+add_index\s+(.*)$/
args = eval("parse_args(#{$1})")
eval("remove_index #{args[0..1].join(',')}") rescue nil
elsif line =~ /^\s+add_foreign_key\s+(.*)$/
eval("remove_foreign_key #{$1}") rescue nil
elsif line =~ /^\s+create_table\s+:([^,]+)(,.*)$/
drop_table($1) rescue nil
end
end
end
end
def parse_args(*s)
s
end
end
end
ActiveRecord::Migration.extend(AutoDropMigration::Migration)