Sha256: 4df8e2df2520a8927c309cd5c6ec7c6d4860969ed229a290f464153731a2cac1

Contents?: true

Size: 712 Bytes

Versions: 1

Compression:

Stored size: 712 Bytes

Contents

# typed: strict

module Mocktail::Matchers
  class That < Base
    extend T::Sig

    sig { returns(Symbol) }
    def self.matcher_name
      :that
    end

    sig { params(blk: T.nilable(T.proc.params(actual: T.untyped).returns(T.untyped))).void }
    def initialize(&blk)
      if blk.nil?
        raise ArgumentError.new("The `that` matcher must be passed a block (e.g. `that { |arg| … }`)")
      end
      @blk = T.let(blk, T.proc.params(actual: T.untyped).returns(T.untyped))
    end

    sig { params(actual: T.untyped).returns(T::Boolean) }
    def match?(actual)
      @blk.call(actual)
    rescue
      false
    end

    sig { returns(String) }
    def inspect
      "that {…}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mocktail-2.0.0 lib/mocktail/sorbet/mocktail/matchers/that.rb