Class: GraphQL::Schema::MiddlewareChain
- Inherits:
-
Object
- Object
- GraphQL::Schema::MiddlewareChain
- Extended by:
- Forwardable
- Defined in:
- lib/graphql/schema/middleware_chain.rb
Overview
Given #steps and arguments, call steps in order, passing (*arguments, next_step)
.
Steps should call next_step.call
to continue the chain, or not call it to stop the chain.
Defined Under Namespace
Classes: MiddlewareWrapper
Instance Attribute Summary collapse
-
#final_step ⇒ Array<#call(*args)>
readonly
Steps in this chain, will be called with arguments and
next_middleware
. -
#steps ⇒ Array<#call(*args)>
readonly
Steps in this chain, will be called with arguments and
next_middleware
.
Instance Method Summary collapse
-
#<<(callable) ⇒ Object
-
#==(other) ⇒ Object
-
#concat(callables) ⇒ Object
-
#initialize(steps: [], final_step: nil) ⇒ MiddlewareChain
constructor
A new instance of MiddlewareChain.
-
#initialize_copy(other) ⇒ Object
-
#invoke(arguments) ⇒ Object
-
#push(callable) ⇒ Object
Constructor Details
#initialize(steps: [], final_step: nil) ⇒ MiddlewareChain
Returns a new instance of MiddlewareChain.
13 14 15 16 |
# File 'lib/graphql/schema/middleware_chain.rb', line 13 def initialize(steps: [], final_step: nil) @steps = steps @final_step = final_step end |
Instance Attribute Details
#final_step ⇒ Array<#call(*args)> (readonly)
Returns Steps in this chain, will be called with arguments and next_middleware
.
11 12 13 |
# File 'lib/graphql/schema/middleware_chain.rb', line 11 def final_step @final_step end |
#steps ⇒ Array<#call(*args)> (readonly)
Returns Steps in this chain, will be called with arguments and next_middleware
.
11 12 13 |
# File 'lib/graphql/schema/middleware_chain.rb', line 11 def steps @steps end |
Instance Method Details
#<<(callable) ⇒ Object
25 26 27 |
# File 'lib/graphql/schema/middleware_chain.rb', line 25 def <<(callable) add_middleware(callable) end |
#==(other) ⇒ Object
33 34 35 |
# File 'lib/graphql/schema/middleware_chain.rb', line 33 def ==(other) steps == other.steps && final_step == other.final_step end |
#concat(callables) ⇒ Object
41 42 43 |
# File 'lib/graphql/schema/middleware_chain.rb', line 41 def concat(callables) callables.each { |c| add_middleware(c) } end |
#initialize_copy(other) ⇒ Object
18 19 20 21 |
# File 'lib/graphql/schema/middleware_chain.rb', line 18 def initialize_copy(other) super @steps = other.steps.dup end |
#invoke(arguments) ⇒ Object
37 38 39 |
# File 'lib/graphql/schema/middleware_chain.rb', line 37 def invoke(arguments) invoke_core(0, arguments) end |
#push(callable) ⇒ Object
29 30 31 |
# File 'lib/graphql/schema/middleware_chain.rb', line 29 def push(callable) add_middleware(callable) end |