require 'sinatra/base' require 'rack' require 'yaml' class TestApp < Sinatra::Base set :root, File.dirname(__FILE__) set :static, true get '/' do 'Hello world!' end get '/foo' do 'Another World' end get '/redirect' do redirect '/redirect_again' end get '/redirect_again' do redirect '/landed' end get '/landed' do "You landed" end get '/with-quotes' do %q{"No," he said, "you can't do that."} end get '/form/get' do '
' + params[:form].to_yaml + '
' end get '/favicon.ico' do nil end post '/redirect' do redirect '/redirect_again' end get '/redirect_back' do redirect back end get '/:view' do |view| erb view.to_sym end post '/form' do '
' + params[:form].to_yaml + '
' end post '/upload' do begin buffer = [] buffer << "Content-type: #{params[:form][:document][:type]}" buffer << "File content: #{params[:form][:document][:tempfile].read}" buffer.join(' | ') rescue 'No file uploaded' end end end if __FILE__ == $0 Rack::Handler::Mongrel.run TestApp, :Port => 8070 end