diff options
author | Nicholas Seckar <nseckar@gmail.com> | 2006-02-27 20:29:28 +0000 |
---|---|---|
committer | Nicholas Seckar <nseckar@gmail.com> | 2006-02-27 20:29:28 +0000 |
commit | ada11d6313bd1f74c6a229caca36ca063b38da4e (patch) | |
tree | 27f5a7e4a3f913d7cbe4200594afe6421a2fa3d6 /activerecord/lib/active_record | |
parent | d0bd952aff3f42ed95eed701916bbdf9e6f01cca (diff) | |
download | rails-ada11d6313bd1f74c6a229caca36ca063b38da4e.tar.gz rails-ada11d6313bd1f74c6a229caca36ca063b38da4e.tar.bz2 rails-ada11d6313bd1f74c6a229caca36ca063b38da4e.zip |
Add set_fixture_class to allow the use of table name accessors with models which use set_default_name. Closes #3935
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3690 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-x | activerecord/lib/active_record/fixtures.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb index 789190fe79..7a0ffbf4ce 100755 --- a/activerecord/lib/active_record/fixtures.rb +++ b/activerecord/lib/active_record/fixtures.rb @@ -237,14 +237,13 @@ class Fixtures < YAML::Omap cattr_accessor :all_loaded_fixtures self.all_loaded_fixtures = {} - def self.create_fixtures(fixtures_directory, *table_names) + def self.create_fixtures(fixtures_directory, table_names, class_names) table_names = table_names.flatten.map { |n| n.to_s } connection = block_given? ? yield : ActiveRecord::Base.connection - ActiveRecord::Base.silence do fixtures_map = {} fixtures = table_names.map do |table_name| - fixtures_map[table_name] = Fixtures.new(connection, File.split(table_name.to_s).last, File.join(fixtures_directory, table_name.to_s)) + fixtures_map[table_name] = Fixtures.new(connection, File.split(table_name.to_s).last, class_names[table_name.to_sym], File.join(fixtures_directory, table_name.to_s)) end all_loaded_fixtures.merge! fixtures_map @@ -267,10 +266,10 @@ class Fixtures < YAML::Omap attr_reader :table_name - def initialize(connection, table_name, fixture_path, file_filter = DEFAULT_FILTER_RE) + def initialize(connection, table_name, class_name, fixture_path, file_filter = DEFAULT_FILTER_RE) @connection, @table_name, @fixture_path, @file_filter = connection, table_name, fixture_path, file_filter - - @class_name = ActiveRecord::Base.pluralize_table_names ? @table_name.singularize.camelize : @table_name.camelize + @class_name = class_name || + (ActiveRecord::Base.pluralize_table_names ? @table_name.singularize.camelize : @table_name.camelize) @table_name = ActiveRecord::Base.table_name_prefix + @table_name + ActiveRecord::Base.table_name_suffix read_fixture_files end @@ -423,6 +422,7 @@ module Test #:nodoc: class TestCase #:nodoc: cattr_accessor :fixture_path class_inheritable_accessor :fixture_table_names + class_inheritable_accessor :fixture_class_names class_inheritable_accessor :use_transactional_fixtures class_inheritable_accessor :use_instantiated_fixtures # true, false, or :no_instances class_inheritable_accessor :pre_loaded_fixtures @@ -431,9 +431,16 @@ module Test #:nodoc: self.use_transactional_fixtures = false self.use_instantiated_fixtures = true self.pre_loaded_fixtures = false - + + self.fixture_class_names = {} + @@already_loaded_fixtures = {} - + self.fixture_class_names = {} + + def self.set_fixture_class(class_names = {}) + self.fixture_class_names = self.fixture_class_names.merge(class_names) + end + def self.fixtures(*table_names) table_names = table_names.flatten.map { |n| n.to_s } self.fixture_table_names |= table_names @@ -548,7 +555,7 @@ module Test #:nodoc: private def load_fixtures @loaded_fixtures = {} - fixtures = Fixtures.create_fixtures(fixture_path, fixture_table_names) + fixtures = Fixtures.create_fixtures(fixture_path, fixture_table_names, fixture_class_names) unless fixtures.nil? if fixtures.instance_of?(Fixtures) @loaded_fixtures[fixtures.table_name] = fixtures |