Class: Rage::Configuration::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/rage/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMiddleware

Returns a new instance of Middleware.



159
160
161
# File 'lib/rage/configuration.rb', line 159

def initialize
  @middlewares = [[Rage::FiberWrapper]]
end

Instance Attribute Details

#middlewaresObject (readonly)

Returns the value of attribute middlewares.



157
158
159
# File 'lib/rage/configuration.rb', line 157

def middlewares
  @middlewares
end

Instance Method Details

#insert_after(existing_middleware, new_middleware, *args, &block) ⇒ Object



175
176
177
178
# File 'lib/rage/configuration.rb', line 175

def insert_after(existing_middleware, new_middleware, *args, &block)
  index = find_middleware_index(existing_middleware)
  @middlewares = (@middlewares[0..index] + [[new_middleware, args, block]] + @middlewares[index + 1..]).uniq(&:first)
end

#insert_before(existing_middleware, new_middleware, *args, &block) ⇒ Object



167
168
169
170
171
172
173
# File 'lib/rage/configuration.rb', line 167

def insert_before(existing_middleware, new_middleware, *args, &block)
  index = find_middleware_index(existing_middleware)
  if index == 0 && @middlewares[0][0] == Rage::FiberWrapper
    puts("Warning: inserting #{new_middleware} before Rage::FiberWrapper may lead to undefined behavior.")
  end
  @middlewares = (@middlewares[0...index] + [[new_middleware, args, block]] + @middlewares[index..]).uniq(&:first)
end

#use(new_middleware, *args, &block) ⇒ Object



163
164
165
# File 'lib/rage/configuration.rb', line 163

def use(new_middleware, *args, &block)
  insert_after(@middlewares.length - 1, new_middleware, *args, &block)
end