diff options
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 11 | ||||
-rwxr-xr-x | activerecord/test/base_test.rb | 12 |
2 files changed, 18 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index b838b1cdc0..e1f3dce7ce 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -895,9 +895,16 @@ module ActiveRecord #:nodoc: end end - # Returns a string looking like: #<Post id:integer, title:string, body:text> + # Returns a string like 'Post id:integer, title:string, body:text' def inspect - "#<#{name} #{columns.collect { |c| "#{c.name}: #{c.type}" }.join(", ")}>" + if self == Base + super + elsif abstract_class? + "#{super}(abstract)" + else + attr_list = columns.map { |c| "#{c.name}: #{c.type}" } * ', ' + "#{super}(#{attr_list})" + end end diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb index d74a7b82b5..a64f933f37 100755 --- a/activerecord/test/base_test.rb +++ b/activerecord/test/base_test.rb @@ -1680,12 +1680,18 @@ class BasicsTest < Test::Unit::TestCase # "expected last count (#{counts.last}) to be <= first count (#{counts.first})" #end - def test_inspect + def test_inspect_class + assert_equal 'ActiveRecord::Base', ActiveRecord::Base.inspect + assert_equal 'LoosePerson(abstract)', LoosePerson.inspect + assert_match(/^Topic\(id: integer, title: string/, Topic.inspect) + end + + def test_inspect_instance topic = topics(:first) - assert_equal topic.inspect, %(#<Topic id: 1, title: "The First Topic", author_name: "David", author_email_address: "david@loudthinking.com", written_on: "#{topic.written_on.to_s(:db)}", bonus_time: "#{topic.bonus_time.to_s(:db)}", last_read: "#{topic.last_read.to_s(:db)}", content: "Have a nice day", approved: false, replies_count: 1, parent_id: nil, type: nil>) + assert_equal %(#<Topic id: 1, title: "The First Topic", author_name: "David", author_email_address: "david@loudthinking.com", written_on: "#{topic.written_on.to_s(:db)}", bonus_time: "#{topic.bonus_time.to_s(:db)}", last_read: "#{topic.last_read.to_s(:db)}", content: "Have a nice day", approved: false, replies_count: 1, parent_id: nil, type: nil>), topic.inspect end - def test_inspect_new + def test_inspect_new_instance assert_match /Topic id: nil/, Topic.new.inspect end |