Class: Gritz::Dispatcher
- Inherits:
-
Object
- Object
- Gritz::Dispatcher
- Defined in:
- /home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/dispatcher.rb
Overview
Routes one Call through the configured middleware and a fresh controller.
Instance Attribute Summary collapse
- #router ⇒ Object readonly
Instance Method Summary collapse
- #call(call) ⇒ Object
-
#initialize(router:, middleware: Middleware::Stack.default, logger: Logger.new($stdout), metrics: nil, worker: nil, log_format: :json, log_redact: []) ⇒ Dispatcher
constructor
A new instance of Dispatcher.
Constructor Details
#initialize(router:, middleware: Middleware::Stack.default, logger: Logger.new($stdout), metrics: nil, worker: nil, log_format: :json, log_redact: []) ⇒ Dispatcher
Returns a new instance of Dispatcher.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/dispatcher.rb', line 11 def initialize(router:, middleware: Middleware::Stack.default, logger: Logger.new($stdout), metrics: nil, worker: nil, log_format: :json, log_redact: []) @router = router @logger = logger @context_options = { metrics: metrics, worker: worker, log_format: log_format, log_redact: log_redact } endpoint = lambda do |context| context.check_deadline! context.check_cancelled! descriptor = router.resolve(context.method.full_name) result = descriptor.controller.new(context:).process(descriptor.action) context.check_deadline! context.check_cancelled! unless descriptor.server_streaming? context.validate_response!(result) context.record_sent(result) end result end @app = middleware ? middleware.build(endpoint) : endpoint end |
Instance Attribute Details
#router ⇒ Object (readonly)
9 10 11 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/dispatcher.rb', line 9 def router @router end |