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("def #{method}(*args, &block); self.class.any_instance.mocha.method_missing(:#{method}, *args, &block); end", __FILE__, __LINE__) 29: end
# File lib/mocha/any_instance_method.rb, line 17 17: def hide_original_method 18: if method_exists?(method) 19: begin 20: stubbee.class_eval("alias_method :#{hidden_method}, :#{method}", __FILE__, __LINE__) 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 45 45: def method_exists?(method) 46: existing_methods = [] 47: existing_methods += stubbee.public_instance_methods(false) 48: existing_methods += stubbee.protected_instance_methods(false) 49: existing_methods += stubbee.private_instance_methods(false) 50: existing_methods.any? { |m| m.to_s == method.to_s } 51: 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 31 31: def remove_new_method 32: stubbee.class_eval("remove_method :#{method}", __FILE__, __LINE__) 33: end
# File lib/mocha/any_instance_method.rb, line 35 35: def restore_original_method 36: if method_exists?(hidden_method) 37: begin 38: stubbee.class_eval("alias_method :#{method}, :#{hidden_method}; remove_method :#{hidden_method}", __FILE__, __LINE__) 39: rescue NameError 40: # deal with nasties like ActiveRecord::Associations::AssociationProxy 41: end 42: end 43: end