Class: CMDx::MiddlewareRegistry
- Inherits:
-
Object
- Object
- CMDx::MiddlewareRegistry
- Defined in:
- lib/cmdx/middleware_registry.rb
Overview
Registry for managing middleware components in a task execution chain.
The MiddlewareRegistry maintains an ordered list of middleware components that can be inserted, removed, and executed in sequence. Each middleware can be configured with specific options and is executed in the order they were registered.
Instance Attribute Summary collapse
-
#registry ⇒ Array<Array>
(also: #to_a)
readonly
Returns the ordered collection of middleware entries.
Instance Method Summary collapse
-
#call!(task) {|task| ... } ⇒ Object
Execute the middleware chain for a given task.
-
#deregister(middleware) ⇒ MiddlewareRegistry
Remove a middleware component from the registry.
-
#dup ⇒ MiddlewareRegistry
Create a duplicate of the registry with duplicated middleware entries.
-
#initialize(registry = []) ⇒ MiddlewareRegistry
constructor
Initialize a new middleware registry.
-
#register(middleware, at: -1,, **options) ⇒ MiddlewareRegistry
Register a middleware component in the registry.
Constructor Details
#initialize(registry = []) ⇒ MiddlewareRegistry
Initialize a new middleware registry.
32 33 34 |
# File 'lib/cmdx/middleware_registry.rb', line 32 def initialize(registry = []) @registry = registry end |
Instance Attribute Details
#registry ⇒ Array<Array> (readonly) Also known as: to_a
Returns the ordered collection of middleware entries.
20 21 22 |
# File 'lib/cmdx/middleware_registry.rb', line 20 def registry @registry end |
Instance Method Details
#call!(task) {|task| ... } ⇒ Object
Execute the middleware chain for a given task.
100 101 102 103 104 |
# File 'lib/cmdx/middleware_registry.rb', line 100 def call!(task, &) raise ArgumentError, "block required" unless block_given? recursively_call_middleware(0, task, &) end |
#deregister(middleware) ⇒ MiddlewareRegistry
Remove a middleware component from the registry.
78 79 80 81 |
# File 'lib/cmdx/middleware_registry.rb', line 78 def deregister(middleware) registry.reject! { |mw, _opts| mw == middleware } self end |
#dup ⇒ MiddlewareRegistry
Create a duplicate of the registry with duplicated middleware entries.
44 45 46 |
# File 'lib/cmdx/middleware_registry.rb', line 44 def dup self.class.new(registry.map(&:dup)) end |
#register(middleware, at: -1,, **options) ⇒ MiddlewareRegistry
Register a middleware component in the registry.
63 64 65 66 |
# File 'lib/cmdx/middleware_registry.rb', line 63 def register(middleware, at: -1, **) registry.insert(at, [middleware, ]) self end |