Class: Class

Inherits:
Object show all
Defined in:
lib/webget_ruby_ramp/class.rb

Instance Method Summary collapse

Instance Method Details

#publicize_methodsObject

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