Exception: Takagi::Errors::MiddlewareError

Inherits:
TakagiError
  • Object
show all
Defined in:
lib/takagi/errors.rb

Overview

Raised when middleware operations fail

Instance Attribute Summary

Attributes inherited from TakagiError

#context, #suggestions

Class Method Summary collapse

Methods inherited from TakagiError

#initialize

Constructor Details

This class inherits a constructor from Takagi::Errors::TakagiError

Class Method Details

.invalid_class(middleware_class) ⇒ Object



367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
# File 'lib/takagi/errors.rb', line 367

def self.invalid_class(middleware_class)
  new(
    "Invalid middleware class: #{middleware_class}",
    context: {
      provided: middleware_class,
      expected: "Class responding to #call(request)"
    },
    suggestions: [
      "Middleware must respond to #call(request)",
      "Example:",
      "  class MyMiddleware",
      "    def call(request)",
      "      # process request",
      "    end",
      "  end"
    ]
  )
end

.not_found(middleware_name, available) ⇒ Object



352
353
354
355
356
357
358
359
360
361
362
363
364
365
# File 'lib/takagi/errors.rb', line 352

def self.not_found(middleware_name, available)
  similar = RegistryError.find_similar(middleware_name.to_s, available.map(&:to_s))

  new(
    "Middleware not found: #{middleware_name.inspect}",
    context: {
      requested: middleware_name,
      available: available
    },
    suggestions: similar.any? ?
      ["Did you mean #{similar.first.to_sym.inspect}?"] :
      ["Available middleware: #{available.map(&:inspect).join(', ')}"]
  )
end