9: def matches?(proc)
10: @saved_out = $stdout
11: @saved_err = $stderr
12: @stdout = $stdout = IOStub.new
13: @stderr = $stderr = IOStub.new
14:
15: proc.call
16:
17: unless @out.nil?
18: case @out
19: when Regexp
20: return false unless $stdout =~ @out
21: else
22: return false unless $stdout == @out
23: end
24: end
25:
26: unless @err.nil?
27: case @err
28: when Regexp
29: return false unless $stderr =~ @err
30: else
31: return false unless $stderr == @err
32: end
33: end
34:
35: return true
36: ensure
37: $stdout = @saved_out
38: $stderr = @saved_err
39: end