Class: Class
Instance Method Summary collapse
-
#publicize_methods ⇒ Object
Make all the methods public for a block.
Instance Method Details
#publicize_methods ⇒ Object
Make all the methods public for a block.
This is especially useful for unit testing a class’s private and protected methods
From blog.jayfields.com/2007/11/ruby-testing-private-methods.html
Example
MyClass.publicize_methods do
...call some method that was private or protected...
end
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/webget_ruby_ramp/class.rb', line 20 def publicize_methods saved_private_instance_methods = self.private_instance_methods saved_protected_instance_methods = self.protected_instance_methods self.class_eval { public *saved_private_instance_methods public *saved_protected_instance_methods } yield self.class_eval { private *saved_private_instance_methods protected *saved_protected_instance_methods } end |