Class: Merb::Rack::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/merb-core/rack/application.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/merb-core/rack/application.rb', line 5

def call(env) 
  begin
    controller = ::Merb::Dispatcher.handle(Merb::Request.new(env))
  rescue Object => e
    return [500, {Merb::Const::CONTENT_TYPE => "text/html"}, e.message + "<br/>" + e.backtrace.join("<br/>")]
  end
  Merb.logger.info "\n\n"
  Merb.logger.flush

  unless controller.headers[Merb::Const::DATE]
    require "time"
    controller.headers[Merb::Const::DATE] = Time.now.rfc2822.to_s
  end
  controller.rack_response
end

#deferred?(env) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
28
29
# File 'lib/merb-core/rack/application.rb', line 21

def deferred?(env)
  path = env[Merb::Const::PATH_INFO] ? env[Merb::Const::PATH_INFO].chomp('/') : ""
  if path =~ Merb.deferred_actions
    Merb.logger.info! "Deferring Request: #{path}"
    true
  else
    false
  end        
end