Methods
    
    
        - #
 
        - 
            
        
 
    
        - A
 
        - 
            
        
 
    
        - B
 
        - 
            
        
 
    
        - D
 
        - 
            
        
 
    
        - E
 
        - 
            
        
 
    
        - I
 
        - 
            
        
 
    
        - L
 
        - 
            
        
 
    
        - N
 
        - 
            
        
 
    
        - S
 
        - 
            
        
 
    
        - U
 
        - 
            
        
 
    
    
    
    
    Included Modules
    
    
    
    
    Classes and Modules
    
    
    
    
    Attributes
    
    
    
            Class Public methods
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
57:     def initialize(*args)
58:       @middlewares = []
59:       yield(self) if block_given?
60:     end
                     
                 
                
             
            
            Instance Public methods
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
74:     def [](i)
75:       middlewares[i]
76:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                             
110:     def build(app = nil, &block)
111:       app ||= block
112:       raise "MiddlewareStack#build requires an app" unless app
113:       middlewares.reverse.inject(app) { |a, e| e.build(a) }
114:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                             
101:     def delete(target)
102:       middlewares.delete target
103:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
62:     def each
63:       @middlewares.each { |x| yield x }
64:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
78:     def initialize_copy(other)
79:       self.middlewares = other.middlewares.dup
80:     end
                     
                 
                
             
            
            
                
                    
                    insert(index, *args, &block)
                    
                
 
                
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
82:     def insert(index, *args, &block)
83:       index = assert_index(index, :before)
84:       middleware = self.class::Middleware.new(*args, &block)
85:       middlewares.insert(index, middleware)
86:     end
                     
                 
                
             
            
            
                
                    
                    insert_after(index, *args, &block)
                    
                
 
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
90:     def insert_after(index, *args, &block)
91:       index = assert_index(index, :after)
92:       insert(index + 1, *args, &block)
93:     end
                     
                 
                
             
            
            
                
                    
                    insert_before(index, *args, &block)
                    
                
 
                
                
                
                
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
70:     def last
71:       middlewares.last
72:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
66:     def size
67:       middlewares.size
68:     end
                     
                 
                
             
            
            
                
                    
                    swap(target, *args, &block)
                    
                
 
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                            
95:     def swap(target, *args, &block)
96:       index = assert_index(target, :before)
97:       insert(index, *args, &block)
98:       middlewares.delete_at(index + 1)
99:     end
                     
                 
                
             
            
            
                
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                             
105:     def use(*args, &block)
106:       middleware = self.class::Middleware.new(*args, &block)
107:       middlewares.push(middleware)
108:     end
                     
                 
                
             
            
            Instance Protected methods
            
            
                
                    
                    assert_index(index, where)
                    
                
 
                
                
                
                
                
                    
                        Source: show
                        
                        | on GitHub
                        
                    
                    
                             
118:     def assert_index(index, where)
119:       i = index.is_a?(Integer) ? index : middlewares.index(index)
120:       raise "No such middleware to insert #{where}: #{index.inspect}" unless i
121:       i
122:     end