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