Sha256: 1b281305fe1bab34a708521f5898d90628fd6e3ac8b8a708c3cd11eb490c080b

Contents?: true

Size: 690 Bytes

Versions: 2

Compression:

Stored size: 690 Bytes

Contents

# frozen_string_literal: true

module Strict
  class MethodReturnError < Error
    attr_reader :verifiable_method, :value

    def initialize(verifiable_method:, value:)
      super(message_from(verifiable_method:, value:))

      @verifiable_method = verifiable_method
      @value = value
    end

    private

    def message_from(verifiable_method:, value:)
      details = invalid_returns_message_from(verifiable_method, value)
      "#{verifiable_method}'s return value was invalid because:\n#{details}"
    end

    def invalid_returns_message_from(verifiable_method, value)
      "  - got #{value.inspect}, expected #{verifiable_method.returns.validator.inspect}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
strict-1.1.0 lib/strict/method_return_error.rb
strict-1.0.0 lib/strict/method_return_error.rb