Class: Raki::Chain

Inherits:
Base
  • Object
show all
Defined in:
lib/raki/chain.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ Chain

Returns a new instance of Chain.



5
6
7
8
9
# File 'lib/raki/chain.rb', line 5

def initialize(*args, &block)
  super
  @stack = []
  instance_eval(&block) if block
end

Instance Method Details

#add(middleware = nil, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/raki/chain.rb', line 11

def add(middleware = nil, *, &block)
  middleware ||= block
  @stack <<
    if middleware.instance_of?(Class)
      # middleware.new(*args, &block)
      middleware.new(*, &block)
    else
      middleware
    end
end

#call(hsh) ⇒ Object



22
23
24
25
26
# File 'lib/raki/chain.rb', line 22

def call(hsh)
  my_hsh = hsh
  @stack.each { |app| my_hsh = app.call(my_hsh) }
  my_hsh
end