diff options
author | Xavier Noria <fxn@hashref.com> | 2013-04-20 09:26:07 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2013-04-20 09:26:11 +0200 |
commit | 0400a7ff574f83f2f5d5c3f7d7569bfb37963dda (patch) | |
tree | 9dfcd4ee3f38f502ecbf943f8d7c8301898e90d1 /activerecord | |
parent | d32ef7c7a5a1e29f64eb3c2240c642c7b0c73f25 (diff) | |
download | rails-0400a7ff574f83f2f5d5c3f7d7569bfb37963dda.tar.gz rails-0400a7ff574f83f2f5d5c3f7d7569bfb37963dda.tar.bz2 rails-0400a7ff574f83f2f5d5c3f7d7569bfb37963dda.zip |
if singletons belong to the contract, test them
Object#respond_to? returns singletons and thus we inherit that contract.
The implementation of the predicate is good, but the test is only
checking boolean semantics, which in this case is not enough.
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/relation_test.rb | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/attribute_methods.rb b/activerecord/lib/active_record/attribute_methods.rb index d0c51b77c2..7f59d0b4c6 100644 --- a/activerecord/lib/active_record/attribute_methods.rb +++ b/activerecord/lib/active_record/attribute_methods.rb @@ -167,7 +167,7 @@ module ActiveRecord self.class.define_attribute_methods unless self.class.attribute_methods_generated? result = super - # If the result is false then it means this method is not supported by ActiveModel too + # If the result is false the answer is false. return false unless result # If the result is true then check for the select case. diff --git a/activerecord/test/cases/relation_test.rb b/activerecord/test/cases/relation_test.rb index 06723b9d7f..482c1b3d48 100644 --- a/activerecord/test/cases/relation_test.rb +++ b/activerecord/test/cases/relation_test.rb @@ -186,8 +186,11 @@ module ActiveRecord end def test_respond_to_for_non_selected_element + post = Post.select(:title).first + assert_equal false, post.respond_to?(:body), "post should not respond_to?(:body) since invoking it raises exception" + post = Post.select("'title' as post_title").first - assert !post.respond_to?(:body), "post should not respond_to?(:body) since invoking it raises exception" + assert_equal false, post.respond_to?(:title), "post should not respond_to?(:body) since invoking it raises exception" end end |