1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
module RR
module Integrations
module RSpec
class InvocationMatcher < SpyVerificationProxy
attr_reader :failure_message, :spy_verification_proxy
def initialize(method = nil)
@verification = nil
@subject = nil
method_missing(method) if method
end
def matches?(subject)
@verification.subject = subject
calls = RR::Space.instance.recorded_calls
if error = calls.match_error(@verification)
@failure_message = error.message
false
else
true
end
end
def nil?
false
end
def method_missing(method_name, *args, &block)
if @verification
@verification.send(method_name, *args)
else
@verification = super
end
self
end
end
end
end
end
|