Class: A2A::Agent::StackBuilder
- Inherits:
-
Object
- Object
- A2A::Agent::StackBuilder
- Defined in:
- lib/a2a/agent.rb
Overview
Builds a per-operation middleware stack. Collects ‘use` and `respond_with` calls, compiles into a callable app.
Instance Method Summary collapse
-
#initialize ⇒ StackBuilder
constructor
A new instance of StackBuilder.
- #respond_with(callable) ⇒ Object
- #to_app ⇒ Object
- #use(middleware, *args, &block) ⇒ Object
Constructor Details
#initialize ⇒ StackBuilder
Returns a new instance of StackBuilder.
69 70 71 72 |
# File 'lib/a2a/agent.rb', line 69 def initialize @middleware = [] @terminal = nil end |
Instance Method Details
#respond_with(callable) ⇒ Object
78 79 80 |
# File 'lib/a2a/agent.rb', line 78 def respond_with(callable) @terminal = callable end |
#to_app ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/a2a/agent.rb', line 82 def to_app raise ArgumentError, "respond_with is required" unless @terminal app = Terminal.new(@terminal) @middleware.reverse_each do |klass, args, block| app = klass.new(app, *args, &block) end app end |
#use(middleware, *args, &block) ⇒ Object
74 75 76 |
# File 'lib/a2a/agent.rb', line 74 def use(middleware, *args, &block) @middleware << [middleware, args, block] end |