Exception: Operandi::ArgTypeError

Inherits:
Error
  • Object
show all
Defined in:
lib/operandi/exceptions.rb

Overview

Raised when an argument or output value doesn't match the expected type.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = nil, service_class:) ⇒ ArgTypeError

Returns a new instance of ArgTypeError.

Parameters:

  • message (String, nil) (defaults to: nil)

    the error message

  • service_class (Class<Base>)

    the service class associated with the type error

Raises:

  • (ArgumentError)


33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/operandi/exceptions.rb', line 33

def initialize(message = nil, service_class:)
  raise ArgumentError, "service_class is required" unless service_class

  unless defined?(Operandi::Base) &&
         service_class.is_a?(Class) &&
         service_class <= Operandi::Base
    raise ArgumentError, "service_class must be an Operandi::Base subclass"
  end

  @service_class = service_class
  super(message)
end

Instance Attribute Details

#service_classClass<Base> (readonly)

Returns the service class associated with the type error.

Returns:

  • (Class<Base>)

    the service class associated with the type error



29
30
31
# File 'lib/operandi/exceptions.rb', line 29

def service_class
  @service_class
end