2007-12-21 08:48:59 +01:00
|
|
|
class MigrationGenerator < Rails::Generator::NamedBase
|
2007-01-22 14:43:50 +01:00
|
|
|
def manifest
|
|
|
|
record do |m|
|
2007-12-21 08:48:59 +01:00
|
|
|
m.migration_template 'migration.rb', 'db/migrate', :assigns => get_local_assigns
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|
|
|
|
end
|
2007-12-21 08:48:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
def get_local_assigns
|
|
|
|
returning(assigns = {}) do
|
|
|
|
if class_name.underscore =~ /^(add|remove)_.*_(?:to|from)_(.*)/
|
|
|
|
assigns[:migration_action] = $1
|
|
|
|
assigns[:table_name] = $2.pluralize
|
|
|
|
else
|
|
|
|
assigns[:attributes] = []
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|