aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/fixtures.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-02-11 16:35:15 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2011-02-11 16:35:15 -0800
commit0ebbf6be8a5aa9b5c817b3ee0dfdd8135c525ac7 (patch)
tree707232747e164ccbd023ad33c368dc9aa16d01ac /activerecord/lib/active_record/fixtures.rb
parent61fc3094799f82fa4f4c33b5e02656cf6a0126ab (diff)
downloadrails-0ebbf6be8a5aa9b5c817b3ee0dfdd8135c525ac7.tar.gz
rails-0ebbf6be8a5aa9b5c817b3ee0dfdd8135c525ac7.tar.bz2
rails-0ebbf6be8a5aa9b5c817b3ee0dfdd8135c525ac7.zip
calculate model class on construction
Diffstat (limited to 'activerecord/lib/active_record/fixtures.rb')
-rw-r--r--activerecord/lib/active_record/fixtures.rb27
1 files changed, 11 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb
index 2cef5570e1..caf1aedf09 100644
--- a/activerecord/lib/active_record/fixtures.rb
+++ b/activerecord/lib/active_record/fixtures.rb
@@ -549,7 +549,7 @@ class Fixtures
Zlib.crc32(label.to_s) % MAX_ID
end
- attr_reader :table_name, :name, :fixtures
+ attr_reader :table_name, :name, :fixtures, :model_class
def initialize(connection, table_name, class_name, fixture_path, file_filter = DEFAULT_FILTER_RE)
@connection = connection
@@ -561,8 +561,16 @@ class Fixtures
@fixtures = ActiveSupport::OrderedHash.new
@table_name = "#{ActiveRecord::Base.table_name_prefix}#{@table_name}#{ActiveRecord::Base.table_name_suffix}"
- @table_name = class_name.table_name if class_name.respond_to?(:table_name)
- @connection = class_name.connection if class_name.respond_to?(:connection)
+
+ # Should be an AR::Base type class
+ if class_name.is_a?(Class)
+ @table_name = class_name.table_name
+ @connection = class_name.connection
+ @model_class = class_name
+ else
+ @model_class = class_name.constantize rescue nil
+ end
+
read_fixture_files
end
@@ -675,19 +683,6 @@ class Fixtures
def read_fixture_files; end
end
- def model_class
- unless defined?(@model_class)
- @model_class =
- if @class_name.nil? || @class_name.is_a?(Class)
- @class_name
- else
- @class_name.constantize rescue nil
- end
- end
-
- @model_class
- end
-
def primary_key_name
@primary_key_name ||= model_class && model_class.primary_key
end