| Class | Mocha::AnyInstanceMethod |
| In: |
lib/mocha/any_instance_method.rb
|
| Parent: | ClassMethod |
# File lib/mocha/any_instance_method.rb, line 27
27: def define_new_method
28: stubbee.class_eval(%{
29: def #{method}(*args, &block)
30: self.class.any_instance.mocha.method_missing(:#{method}, *args, &block)
31: end
32: }, __FILE__, __LINE__)
33: end
# File lib/mocha/any_instance_method.rb, line 17
17: def hide_original_method
18: if method_exists?(method)
19: begin
20: stubbee.send(:alias_method, hidden_method, method)
21: rescue NameError
22: # deal with nasties like ActiveRecord::Associations::AssociationProxy
23: end
24: end
25: end
# File lib/mocha/any_instance_method.rb, line 50
50: def method_exists?(method)
51: return true if stubbee.public_instance_methods(false).include?(method)
52: return true if stubbee.protected_instance_methods(false).include?(method)
53: return true if stubbee.private_instance_methods(false).include?(method)
54: return false
55: end
# File lib/mocha/any_instance_method.rb, line 13
13: def mock
14: stubbee.any_instance.mocha
15: end
# File lib/mocha/any_instance_method.rb, line 35
35: def remove_new_method
36: stubbee.send(:remove_method, method)
37: end
# File lib/mocha/any_instance_method.rb, line 39
39: def restore_original_method
40: if method_exists?(hidden_method)
41: begin
42: stubbee.send(:alias_method, method, hidden_method)
43: stubbee.send(:remove_method, hidden_method)
44: rescue NameError
45: # deal with nasties like ActiveRecord::Associations::AssociationProxy
46: end
47: end
48: end