Class: Rory::MiddlewareStack
- Inherits:
-
Object
- Object
- Rory::MiddlewareStack
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/rory/middleware_stack.rb
Defined Under Namespace
Classes: Middleware
Instance Attribute Summary collapse
-
#middlewares ⇒ Object
Returns the value of attribute middlewares.
Instance Method Summary collapse
- #delete(target) ⇒ Object
-
#initialize(on_change: -> {}) {|_self| ... } ⇒ MiddlewareStack
constructor
A new instance of MiddlewareStack.
- #insert(index, klass, *args, &block) ⇒ Object (also: #insert_before)
- #insert_after(index, *args, &block) ⇒ Object
- #unshift(klass, *args, &block) ⇒ Object
- #use(klass, *args, &block) ⇒ Object
Constructor Details
#initialize(on_change: -> {}) {|_self| ... } ⇒ MiddlewareStack
Returns a new instance of MiddlewareStack.
45 46 47 48 49 |
# File 'lib/rory/middleware_stack.rb', line 45 def initialize(on_change: -> {}) @middlewares = [] yield(self) if block_given? end |
Instance Attribute Details
#middlewares ⇒ Object
Returns the value of attribute middlewares.
42 43 44 |
# File 'lib/rory/middleware_stack.rb', line 42 def middlewares @middlewares end |
Instance Method Details
#delete(target) ⇒ Object
67 68 69 |
# File 'lib/rory/middleware_stack.rb', line 67 def delete(target) middlewares.delete_if { |m| m.klass == target } end |
#insert(index, klass, *args, &block) ⇒ Object Also known as: insert_before
55 56 57 58 |
# File 'lib/rory/middleware_stack.rb', line 55 def insert(index, klass, *args, &block) index = assert_index(index, :before) middlewares.insert(index, build_middleware(klass, args, block)) end |
#insert_after(index, *args, &block) ⇒ Object
62 63 64 65 |
# File 'lib/rory/middleware_stack.rb', line 62 def insert_after(index, *args, &block) index = assert_index(index, :after) insert(index + 1, *args, &block) end |
#unshift(klass, *args, &block) ⇒ Object
51 52 53 |
# File 'lib/rory/middleware_stack.rb', line 51 def unshift(klass, *args, &block) middlewares.unshift(build_middleware(klass, args, block)) end |
#use(klass, *args, &block) ⇒ Object
71 72 73 |
# File 'lib/rory/middleware_stack.rb', line 71 def use(klass, *args, &block) middlewares.push(build_middleware(klass, args.compact, block)) end |