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  |