Sha256: 6404efe9ec167347b9352d5f119088a9fe23dfe64badb417c88014146f45dea9

Contents?: true

Size: 1.24 KB

Versions: 8

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module Micro
  class Case
    module Error
      class UnexpectedResult < TypeError
        MESSAGE = '#call! must return an instance of Micro::Case::Result'.freeze

        def initialize(klass); super(klass.name + MESSAGE); end
      end

      ResultIsAlreadyDefined = ArgumentError.new('result is already defined'.freeze)

      InvalidResultType = TypeError.new('type must be a Symbol'.freeze)
      InvalidResultInstance = ArgumentError.new('argument must be an instance of Micro::Case::Result'.freeze)

      InvalidUseCase = TypeError.new('use case must be a kind or an instance of Micro::Case'.freeze)
      InvalidUseCases = ArgumentError.new('argument must be a collection of `Micro::Case` classes'.freeze)

      UndefinedFlow = ArgumentError.new("This class hasn't declared its flow. Please, use the `flow()` macro to define one.".freeze)

      class InvalidAccessToTheUseCaseObject < StandardError
        MSG = 'only a failure result can access its use case object'.freeze

        def initialize(message = MSG); super; end
      end

      module ByWrongUsage
        def self.check(exception)
          exception.is_a?(Error::UnexpectedResult) || exception.is_a?(ArgumentError)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
u-case-2.2.0 lib/micro/case/error.rb
u-case-2.1.1 lib/micro/case/error.rb
u-case-2.1.0 lib/micro/case/error.rb
u-case-2.0.0 lib/micro/case/error.rb
u-case-2.0.0.pre.4 lib/micro/case/error.rb
u-case-2.0.0.pre.3 lib/micro/case/error.rb
u-case-2.0.0.pre.2 lib/micro/case/error.rb
u-case-2.0.0.pre lib/micro/case/error.rb