55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/extensions/mspec/mspec/mocks/mock.rb', line 55
def self.install_method(obj, sym, type=nil)
meta = obj.singleton_class
key = replaced_key obj, sym
sym = sym.to_sym
if (sym == :respond_to? or mock_respond_to?(obj, sym)) and !replaced?(key.first)
meta.__send__ :alias_method, key.first, sym
end
meta.class_eval <<-END
def #{sym}(*args, &block)
Mock.verify_call self, :#{sym}, *args, &block
end
END
proxy = MockProxy.new type
if proxy.mock?
MSpec.expectation
MSpec.actions :expectation, MSpec.current.state
end
if proxy.stub?
stubs[key].unshift proxy
else
mocks[key] << proxy
end
objects[key] = obj
proxy
end
|