diff options
Diffstat (limited to 'railties/doc/guides/source/creating_plugins/migrations.txt')
-rw-r--r-- | railties/doc/guides/source/creating_plugins/migrations.txt | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/railties/doc/guides/source/creating_plugins/migrations.txt b/railties/doc/guides/source/creating_plugins/migrations.txt index d158004ea3..e7d2e09069 100644 --- a/railties/doc/guides/source/creating_plugins/migrations.txt +++ b/railties/doc/guides/source/creating_plugins/migrations.txt @@ -108,29 +108,21 @@ This example will demonstrate how to use one of the built-in generator methods n require File.dirname(__FILE__) + '/test_helper.rb' require 'rails_generator' require 'rails_generator/scripts/generate' -require 'rails_generator/scripts/destroy' class MigrationGeneratorTest < Test::Unit::TestCase - def fake_rails_root - File.join(File.dirname(__FILE__), 'rails_root') - end - - def file_list - Dir.glob(File.join(fake_rails_root, "db", "migrate", "*")) - end - def setup FileUtils.mkdir_p(fake_rails_root) @original_files = file_list end def teardown + ActiveRecord::Base.pluralize_table_names = true FileUtils.rm_r(fake_rails_root) end def test_generates_correct_file_name - Rails::Generator::Scripts::Generate.new.run(["yaffle", "some_name_nobody_is_likely_to_ever_use_in_a_real_migration"], :destination => fake_rails_root) + Rails::Generator::Scripts::Generate.new.run(["yaffle_migration", "some_name_nobody_is_likely_to_ever_use_in_a_real_migration"], :destination => fake_rails_root) new_file = (file_list - @original_files).first assert_match /add_yaffle_fields_to_some_name_nobody_is_likely_to_ever_use_in_a_real_migrations/, new_file assert_match /add_column :some_name_nobody_is_likely_to_ever_use_in_a_real_migrations do |t|/, File.read(new_file) @@ -138,12 +130,21 @@ class MigrationGeneratorTest < Test::Unit::TestCase def test_pluralizes_properly ActiveRecord::Base.pluralize_table_names = false - Rails::Generator::Scripts::Generate.new.run(["yaffle", "some_name_nobody_is_likely_to_ever_use_in_a_real_migration"], :destination => fake_rails_root) + Rails::Generator::Scripts::Generate.new.run(["yaffle_migration", "some_name_nobody_is_likely_to_ever_use_in_a_real_migration"], :destination => fake_rails_root) new_file = (file_list - @original_files).first assert_match /add_yaffle_fields_to_some_name_nobody_is_likely_to_ever_use_in_a_real_migration/, new_file assert_match /add_column :some_name_nobody_is_likely_to_ever_use_in_a_real_migration do |t|/, File.read(new_file) end + + private + def fake_rails_root + File.join(File.dirname(__FILE__), 'rails_root') + end + def file_list + Dir.glob(File.join(fake_rails_root, "db", "migrate", "*")) + end + end ------------------------------------------------------------------ @@ -156,7 +157,7 @@ After running the test with 'rake' you can make it pass with: [source, ruby] ------------------------------------------------------------------ -class YaffleGenerator < Rails::Generator::NamedBase +class YaffleMigrationGenerator < Rails::Generator::NamedBase def manifest record do |m| m.migration_template 'migration:migration.rb', "db/migrate", {:assigns => yaffle_local_assigns, @@ -169,6 +170,7 @@ class YaffleGenerator < Rails::Generator::NamedBase def custom_file_name custom_name = class_name.underscore.downcase custom_name = custom_name.pluralize if ActiveRecord::Base.pluralize_table_names + custom_name end def yaffle_local_assigns |