From 94c5b7c87c9cb261ea0c804ca1ac126469bda2b9 Mon Sep 17 00:00:00 2001 From: rohit Date: Wed, 4 Aug 2010 06:53:29 +0530 Subject: [PATCH] ActiveRecord::Base.abstract_class? should return false not nil. [#5286 state:resolved] --- activerecord/lib/active_record/base.rb | 2 +- activerecord/test/cases/base_test.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 12736d3..f02314d 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -828,7 +828,7 @@ module ActiveRecord #:nodoc: # Returns whether this class is an abstract class or not. def abstract_class? - defined?(@abstract_class) && @abstract_class == true + defined?(@abstract_class) ? @abstract_class : false end def respond_to?(method_id, include_private = false) diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 56ec4ca..71a3562 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1239,6 +1239,11 @@ class BasicsTest < ActiveRecord::TestCase assert !LooseDescendant.abstract_class? end + def test_abstract_class_returns_false_if_not_abstract_class + assert_equal FalseClass, ActiveRecord::Base.abstract_class?.class + assert_equal FalseClass, LooseDescendant.abstract_class?.class + end + def test_base_class assert_equal LoosePerson, LoosePerson.base_class assert_equal LooseDescendant, LooseDescendant.base_class -- 1.7.0.4