15: def hide_original_method
16: if method_exists?(method)
17: begin
18: @original_method = stubbee.instance_method(method)
19: if @original_method && @original_method.owner == stubbee
20: @original_visibility = :public
21: if stubbee.protected_instance_methods.include?(method)
22: @original_visibility = :protected
23: elsif stubbee.private_instance_methods.include?(method)
24: @original_visibility = :private
25: end
26: stubbee.send(:remove_method, method)
27: end
28: rescue NameError
29:
30: end
31: end
32: end