class Class
Class
extensions
Public Instance Methods
publicize_methods() { || ... }
click to toggle source
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
@return void
# File lib/sixarm_ruby_ramp/class.rb, line 21 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