Browse files

Report the correct value of nil.id in the exception message

as different ruby implementations may have different values,
for example Rubinius returns 53 for nil.id.

[#6444 state:resolved]
  • Loading branch information...
1 parent e2523ff commit 824107b2edb12ec275673c1f0e656a5e7ed6f4bf @pixeltrix pixeltrix committed Mar 6, 2011
Showing with 3 additions and 1 deletion.
  1. +1 −1 activesupport/lib/active_support/whiny_nil.rb
  2. +2 −0 activesupport/test/whiny_nil_test.rb
View
2 activesupport/lib/active_support/whiny_nil.rb
@@ -37,7 +37,7 @@ def self.add_whiner(klass)
# Raises a RuntimeError when you attempt to call +id+ on +nil+.
def id
- raise RuntimeError, "Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id", caller
+ raise RuntimeError, "Called id for nil, which would mistakenly be #{object_id} -- if you really wanted the id of nil, use object_id", caller
end
private
View
2 activesupport/test/whiny_nil_test.rb
@@ -33,9 +33,11 @@ def test_array
end
def test_id
+ nil.stubs(:object_id).returns(999)
nil.id
rescue RuntimeError => nme
assert_no_match(/nil:NilClass/, nme.message)
+ assert_match(/999/, nme.message)
end
def test_no_to_ary_coercion

0 comments on commit 824107b

Please sign in to comment.