Class: Textus::Dispatch::Middleware::Binder
- Defined in:
- lib/textus/dispatch/middleware/binder.rb
Instance Method Summary collapse
-
#call(container:, command:, call:, next_handler:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument.
Methods inherited from Base
Instance Method Details
#call(container:, command:, call:, next_handler:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/textus/dispatch/middleware/binder.rb', line 7 def call(container:, command:, call:, next_handler:) # rubocop:disable Lint/UnusedMethodArgument return next_handler.call(command, call) unless command.is_a?(Dispatch::Binder::Pending) spec = command.spec contract_class = VerbRegistry.contract_class_for(spec.verb) or raise Textus::UsageError.new("unknown command verb: #{spec.verb}") resolved = Dispatch::Binder.bind(spec, command.inputs) built = Dispatch::Pipeline.build_command(contract_class, resolved) next_handler.call(built, call) end |