# frozen_string_literal: true require_relative "base" module RSpec module Clone module ExpectationTarget # Wraps the target of an expectation with a block. # # @example # expect { something } # => ExpectationTarget::Block wrapping something # # # used with `to` # expect { actual }.to be(42) # # # with `not_to` # expect { actual }.not_to be(4) # # @note `RSpec::Clone::ExpectationTarget::Block` is not intended to be # instantiated directly by users. Use `expect` instead. class Block < Base protected # @param matcher [#matches?] The matcher. # @param negate [Boolean] The assertion is positive or negative. # # @return (see Base#absolute_requirement) # # @raise (see Base#absolute_requirement) def absolute_requirement(matcher:, negate:) super( ::TestTube.invoke(isolate: false, matcher: matcher, negate: negate, &@input), matcher: matcher, negate: negate ) end end end end end