Sha256: 2e79c5cff02a7e4bf26406c15b12502fce987fcdf57688e5ae358b207a0b7c50

Contents?: true

Size: 1.11 KB

Versions: 6

Compression:

Stored size: 1.11 KB

Contents

# 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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
r_spec-clone-1.7.0 lib/r_spec/clone/expectation_target/block.rb
r_spec-clone-1.6.0 lib/r_spec/clone/expectation_target/block.rb
r_spec-clone-1.5.0 lib/r_spec/clone/expectation_target/block.rb
r_spec-clone-1.4.0 lib/r_spec/clone/expectation_target/block.rb
r_spec-clone-1.3.0 lib/r_spec/clone/expectation_target/block.rb
r_spec-clone-1.2.4 lib/r_spec/clone/expectation_target/block.rb