Class: WireBridge::Middleware
- Inherits:
-
Object
- Object
- WireBridge::Middleware
- Defined in:
- lib/wirebridge.rb
Overview
Rack middleware — registers capabilities on first request.
use WireBridge::Middleware, service_name: “my-api”, base_url: “localhost:9292” do |b|
b.capability(name: "health check", handler: "/health", output: { status: WireBridge.string })
end
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, **opts) {|@bridge| ... } ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(app, **opts) {|@bridge| ... } ⇒ Middleware
Returns a new instance of Middleware.
266 267 268 269 270 271 272 |
# File 'lib/wirebridge.rb', line 266 def initialize(app, **opts, &block) @app = app @bridge = Client.new(**opts) yield @bridge if block_given? @registered = false @mutex = Mutex.new end |
Instance Method Details
#call(env) ⇒ Object
274 275 276 277 278 279 280 281 282 |
# File 'lib/wirebridge.rb', line 274 def call(env) @mutex.synchronize do unless @registered @bridge.register @registered = true end end @app.call(env) end |