# File lib/rspec/matchers/built_in/yield.rb, line 179 def initialize(*args) @expected = args end
# File lib/rspec/matchers/built_in/yield.rb, line 202 def description desc = "yield successive args" desc << "(" + @expected.map { |e| e.inspect }.join(", ") + ")" desc end
# File lib/rspec/matchers/built_in/yield.rb, line 190 def failure_message_for_should "expected given block to yield successively with arguments, but yielded with unexpected arguments" + "\nexpected: #{@expected.inspect}" + "\n got: #{@actual.inspect} (compared using === and ==)" end
# File lib/rspec/matchers/built_in/yield.rb, line 196 def failure_message_for_should_not "expected given block not to yield successively with arguments, but yielded with expected arguments" + "\nexpected not: #{@expected.inspect}" + "\n got: #{@actual.inspect} (compared using === and ==)" end
# File lib/rspec/matchers/built_in/yield.rb, line 183 def matches?(block) @probe = YieldProbe.probe(block) @actual = @probe.successive_yield_args args_match? end
# File lib/rspec/matchers/built_in/yield.rb, line 210 def args_match? return false if @expected.size != @actual.size @expected.zip(@actual).all? do |expected, actual| expected === actual || actual == expected end end