Class: Telegem::Core::Composer

Inherits:
Object
  • Object
show all
Defined in:
lib/core/composer.rb

Instance Method Summary collapse

Constructor Details

#initializeComposer

Returns a new instance of Composer.



5
6
7
# File 'lib/core/composer.rb', line 5

def initialize
  @middleware = []
end

Instance Method Details

#call(ctx, &final) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/core/composer.rb', line 14

def call(ctx, &final)
  return final.call(ctx) if @middleware.empty?

  # Build the middleware chain
  chain = final
  
  # Reverse the middleware so last added runs last in chain
  @middleware.reverse_each do |middleware|
    chain = create_middleware_wrapper(middleware, chain)
  end
  
  # Execute the chain
  chain.call(ctx)
end

#empty?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/core/composer.rb', line 29

def empty?
  @middleware.empty?
end

#use(middleware) ⇒ Object



9
10
11
12
# File 'lib/core/composer.rb', line 9

def use(middleware)
  @middleware << middleware
  self
end