lib/async/container/supervisor/dispatchable.rb
# frozen_string_literal: true # Released under the MIT License. # Copyright, 2025, by Samuel Williams. require_relative "connection" require_relative "endpoint" require "io/stream" module Async module Container module Supervisor module Dispatchable def dispatch(call) method_name = "do_#{call.message[:do]}" self.public_send(method_name, call) rescue => error Console.error(self, "Error while dispatching call.", exception: error, call: call) call.fail(error: { class: error.class, message: error.message, backtrace: error.backtrace, }) end end end end end