55: def self.install_method(obj, sym, type=nil)
56: meta = obj.metaclass
57:
58: key = replaced_key obj, sym
59: sym = sym.to_sym
60:
61: if (sym == :respond_to? or mock_respond_to?(obj, sym)) and !replaced?(key.first)
62: meta.__send__ :alias_method, key.first, sym
63: end
64:
65: meta.class_eval "def \#{sym}(*args, &block)\nMock.verify_call self, :\#{sym}, *args, &block\nend\n"
66:
67: proxy = MockProxy.new type
68:
69: if proxy.mock?
70: MSpec.expectation
71: MSpec.actions :expectation, MSpec.current.state
72: end
73:
74: if proxy.stub?
75: stubs[key].unshift proxy
76: else
77: mocks[key] << proxy
78: end
79: objects[key] = obj
80:
81: proxy
82: end