Class: WsdlMapper::Runtime::MiddlewareStack
- Inherits:
-
Object
- Object
- WsdlMapper::Runtime::MiddlewareStack
- Includes:
- Enumerable
- Defined in:
- lib/wsdl_mapper/runtime/middleware_stack.rb
Instance Method Summary (collapse)
-
- (Object) add(name, middleware)
(also: #append)
Appends the given
middleware
to the stack. -
- (Object) after(target, name, middleware)
Inserts the given
middleware
after the middleware namedtarget
. -
- (Object) before(target, name, middleware)
Inserts the given
middleware
before the middleware namedtarget
. -
- (Object) clear
Clears the stack.
-
- (Enumerator) each {|middleware| ... }
Enumerates all middlewares in order.
-
- (Object) execute(inputs)
Calls each middleware in order, by passing the output from the last middleware to the next.
-
- (Object, Proc) get(name)
(also: #[])
The middleware for
name
. -
- (MiddlewareStack) initialize
constructor
A new instance of MiddlewareStack.
-
- (Array<String>) names
The names of the middlewares in order.
-
- (Object) prepend(name, middleware)
Prepends the given
middleware
. - - (Object) remove(name)
- - (Object) replace(name, middleware) (also: #[]=)
Constructor Details
- (MiddlewareStack) initialize
Returns a new instance of MiddlewareStack
10 11 12 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 10 def initialize @stack = [] end |
Instance Method Details
- (Object) add(name, middleware) Also known as: append
Appends the given middleware
to the stack.
48 49 50 51 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 48 def add(name, middleware) @stack << Item.new(name, middleware) middleware end |
- (Object) after(target, name, middleware)
Inserts the given middleware
after the middleware named target
.
66 67 68 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 66 def after(target, name, middleware) @stack.insert get_position(target) + 1, Item.new(name, middleware) end |
- (Object) before(target, name, middleware)
Inserts the given middleware
before the middleware named target
.
75 76 77 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 75 def before(target, name, middleware) @stack.insert get_position(target), Item.new(name, middleware) end |
- (Object) clear
Clears the stack.
15 16 17 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 15 def clear @stack = [] end |
- (Enumerator) each {|middleware| ... }
Enumerates all middlewares in order
82 83 84 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 82 def each(&block) @stack.lazy.map(&:middleware).each &block end |
- (Object) execute(inputs)
Calls each middleware in order, by passing the output from the last middleware to the next.
90 91 92 93 94 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 90 def execute(inputs) inject(inputs) do |obj, middleware| middleware.call *obj end end |
- (Object, Proc) get(name) Also known as: []
Returns The middleware for name
.
40 41 42 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 40 def get(name) @stack[get_position(name)].middleware end |
- (Array<String>) names
Returns The names of the middlewares in order.
20 21 22 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 20 def names @stack.map &:name end |
- (Object) prepend(name, middleware)
Prepends the given middleware
.
57 58 59 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 57 def prepend(name, middleware) @stack.unshift Item.new(name, middleware) end |
- (Object) remove(name)
25 26 27 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 25 def remove(name) @stack.delete_if { |item| item.name == name } end |
- (Object) replace(name, middleware) Also known as: []=
31 32 33 34 |
# File 'lib/wsdl_mapper/runtime/middleware_stack.rb', line 31 def replace(name, middleware) @stack[get_position(name)] = Item.new name, middleware middleware end |