From c2bb269cd5c0b2aa42b9206a0994db4e92a24b27 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 20 Nov 2005 05:13:59 +0000 Subject: Allows generator to specify migrations directory. References #2960. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3101 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/rails_generator/commands.rb | 11 +++++++++-- .../generators/components/migration/migration_generator.rb | 1 - .../session_migration/session_migration_generator.rb | 1 - 3 files changed, 9 insertions(+), 4 deletions(-) (limited to 'railties/lib') diff --git a/railties/lib/rails_generator/commands.rb b/railties/lib/rails_generator/commands.rb index 97b23fbf5e..32a7b602d7 100644 --- a/railties/lib/rails_generator/commands.rb +++ b/railties/lib/rails_generator/commands.rb @@ -56,8 +56,12 @@ module Rails end protected + def migration_directory(relative_path) + directory(@migration_directory = relative_path) + end + def existing_migrations(file_name) - Dir.glob("db/migrate/[0-9]*_#{file_name}.rb") + Dir.glob("#{@migration_directory}/[0-9]*_#{file_name}.rb") end def migration_exists?(file_name) @@ -65,7 +69,7 @@ module Rails end def current_migration_number - Dir.glob('db/migrate/[0-9]*.rb').inject(0) do |max, file_path| + Dir.glob("#{@migration_directory}/[0-9]*.rb").inject(0) do |max, file_path| n = File.basename(file_path).split('_', 2).first.to_i if n > max then n else max end end @@ -305,6 +309,7 @@ module Rails # When creating a migration, it knows to find the first available file in db/migrate and use the migration.rb template. def migration_template(relative_source, relative_destination, template_options = {}) + migration_directory relative_destination raise "Another migration is already named #{file_name}: #{existing_migrations(file_name).first}" if migration_exists?(file_name) template(relative_source, "#{relative_destination}/#{next_migration_string}_#{file_name}.rb", template_options) end @@ -418,6 +423,7 @@ end_message # When deleting a migration, it knows to delete every file named "[0-9]*_#{file_name}". def migration_template(relative_source, relative_destination, template_options = {}) + migration_directory relative_destination raise "There is no migration named #{file_name}" unless migration_exists?(file_name) existing_migrations(file_name).each do |file_path| file(relative_source, file_path, template_options) @@ -457,6 +463,7 @@ end_message end def migration_template(relative_source, relative_destination, options = {}) + migration_directory relative_destination logger.migration_template file_name end end diff --git a/railties/lib/rails_generator/generators/components/migration/migration_generator.rb b/railties/lib/rails_generator/generators/components/migration/migration_generator.rb index 95652139f9..a0d0d472c2 100644 --- a/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +++ b/railties/lib/rails_generator/generators/components/migration/migration_generator.rb @@ -1,7 +1,6 @@ class MigrationGenerator < Rails::Generator::NamedBase def manifest record do |m| - m.directory 'db/migrate' m.migration_template 'migration.rb', 'db/migrate' end end diff --git a/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb b/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb index 12802858f6..a513fa5cbf 100644 --- a/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +++ b/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb @@ -6,7 +6,6 @@ class SessionMigrationGenerator < Rails::Generator::NamedBase def manifest record do |m| - m.directory 'db/migrate' m.migration_template 'migration.rb', 'db/migrate' end end -- cgit v1.2.3