Method: Magpie::Snake#call

Defined in:
lib/middles/snake.rb

#call(env) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/middles/snake.rb', line 18

def call(env)
  state, header, body = @app.call(env)
  @block.call(self)
  @req = Rack::Request.new(env)
  @urls[@req.request_method].each { |path, lamb|
    if @req.path_info =~ Regexp.new("^#{path}$")
      body = lamb.call
      break
    end
  }
  [state, header, body]
  rescue Exception => e
  Magpie.logger.info(e.inspect + ":\n" + e.backtrace[0..8].join("\n"))
  [500, header, "500, 请查看日志,了解异常原因"]
end