Class: Hatetepe::Server::Pipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/hatetepe/server/pipeline.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, connection) ⇒ Pipeline

Returns a new instance of Pipeline.



3
4
5
# File 'lib/hatetepe/server/pipeline.rb', line 3

def initialize(app, connection)
  @requests, @app = [], app
end

Instance Method Details

#call(request, &respond) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/hatetepe/server/pipeline.rb', line 7

def call(request, &respond)
  begin
    previous  =  @requests.last
    @requests << request
    @app.call(request) do |response|
      EM::Synchrony.sync(previous) if previous
      respond.call(response)
    end
  ensure
    @requests.delete(request)
  end
end