Skip to content
Browse files

"raise NoMethodError" raises NoMethodError. Raise it with NoMethodErr…

…or.new instead.

Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
  • Loading branch information...
1 parent 5cf9323 commit 5c97d4ff29cfd944da751f01177a3024626d57bb @ffmike ffmike committed with lifo Oct 25, 2008
View
2 activerecord/lib/active_record/attribute_methods.rb
@@ -233,7 +233,7 @@ def method_missing(method_id, *args, &block)
method_name = method_id.to_s
if self.class.private_method_defined?(method_name)
- raise NoMethodError("Attempt to call private method", method_name, args)
+ raise NoMethodError.new("Attempt to call private method", method_name, args)
end
# If we haven't generated any methods yet, generate them, then
View
11 activerecord/test/cases/attribute_methods_test.rb
@@ -233,16 +233,18 @@ def test_read_attributes_respect_access_control
topic = @target.new(:title => "The pros and cons of programming naked.")
assert !topic.respond_to?(:title)
- assert_raise(NoMethodError) { topic.title }
- topic.send(:title)
+ exception = assert_raise(NoMethodError) { topic.title }
+ assert_equal "Attempt to call private method", exception.message
+ assert_equal "I'm private", topic.send(:title)
end
def test_write_attributes_respect_access_control
privatize("title=(value)")
topic = @target.new
assert !topic.respond_to?(:title=)
- assert_raise(NoMethodError) { topic.title = "Pants"}
+ exception = assert_raise(NoMethodError) { topic.title = "Pants"}
+ assert_equal "Attempt to call private method", exception.message
topic.send(:title=, "Very large pants")
end
@@ -251,7 +253,8 @@ def test_question_attributes_respect_access_control
topic = @target.new(:title => "Isaac Newton's pants")
assert !topic.respond_to?(:title?)
- assert_raise(NoMethodError) { topic.title? }
+ exception = assert_raise(NoMethodError) { topic.title? }
+ assert_equal "Attempt to call private method", exception.message
assert topic.send(:title?)
end

2 comments on commit 5c97d4f

@mislav
Ruby on Rails member
mislav commented on 5c97d4f Oct 25, 2008

“raise NoMethodError” raises NoMethodError — well, duh!!

@lifo
Ruby on Rails member
lifo commented on 5c97d4f Oct 25, 2008

I meant, raise NoMethodError(“Something”) raises NoMethodError :)

Please sign in to comment.
Something went wrong with that request. Please try again.