Class: A2A::Server::Middleware::ExtractMessage
- Inherits:
-
Object
- Object
- A2A::Server::Middleware::ExtractMessage
- Defined in:
- lib/a2a/server/middleware/extract_message.rb
Overview
Extracts text from the request message's parts and sets
env["a2a.message"] to the joined text string.
Part of the A2A::Server middleware stack. Requests whose operation carries no message pass through untouched, so env is only present when a message is.
Replaces the common extract_text lambda pattern found in examples:
extract_text = ->() {
parts = .parts || []
parts.filter_map { |p| p.text }.join("\n")
}
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ ExtractMessage
constructor
A new instance of ExtractMessage.
Constructor Details
#initialize(app) ⇒ ExtractMessage
Returns a new instance of ExtractMessage.
24 25 26 |
# File 'lib/a2a/server/middleware/extract_message.rb', line 24 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/a2a/server/middleware/extract_message.rb', line 28 def call(env) request = env["a2a.request"] if request.respond_to?(:message) && ( = request.) parts = .parts || [] env["a2a.message"] = parts.filter_map { |p| p.respond_to?(:text) ? p.text : p["text"] }.join("\n") end @app.call(env) end |