lib/wunderbar/rack.rb in wunderbar-1.3.0 vs lib/wunderbar/rack.rb in wunderbar-1.3.1
- old
+ new
@@ -7,11 +7,18 @@
def call(env)
@_env = env
@_request = Rack::Request.new(env)
@_response = Rack::Response.new
Wunderbar.logger = @_request.logger
- if Wunderbar.safe? and $SAFE==0
+ file = Wunderbar.files[env['PATH_INFO']]
+
+ if file
+ mime = file[:mime] ||
+ Rack::Mime::MIME_TYPES[File.extname(env['PATH_INFO'])]
+ @_response.set_header('Content-Type', mime) if mime
+ @_response.write(file[:content] || file[:source].call)
+ elsif Wunderbar.safe? and $SAFE==0
Proc.new { $SAFE=1; Wunderbar::CGI.call(self) }.call
else
Wunderbar::CGI.call(self)
end
@_response.finish
@@ -40,9 +47,15 @@
@_request
end
def response
@_response
+ end
+
+ %w(delete get head options post put trace).each do |http_method|
+ define_method "#{http_method}?" do
+ @_env['REQUEST_METHOD'].to_s.downcase == http_method
+ end
end
end
end
class Rack::Builder