| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | require 'sinatra'require 'json'set :public_folder, File.dirname(settings.root)enable :staticjquery_version = '3.2'helpers do  def pjax?    env['HTTP_X_PJAX'] && !params[:layout]  end  def title(str)    if pjax?      "<title>#{str}</title>"    else      @title = str      nil    end  end  define_method(:jquery_version) do    jquery_version  endendafter do  if pjax?    response.headers['X-PJAX-URL'] ||= request.url    response.headers['X-PJAX-Version'] = 'v1'  endendget '/' do  jquery_version = params[:jquery] if params[:jquery]  erb :qunitendget '/env.html' do  erb :env, :layout => !pjax?endpost '/env.html' do  erb :env, :layout => !pjax?endput '/env.html' do  erb :env, :layout => !pjax?enddelete '/env.html' do  erb :env, :layout => !pjax?endget '/redirect.html' do  if params[:anchor]    path = "/hello.html##{params[:anchor]}"    if pjax?      response.headers['X-PJAX-URL'] = uri(path)      status 200    else      redirect path    end  else    redirect "/hello.html"  endendget '/timeout.html' do  if pjax?    sleep 1    erb :timeout, :layout => false  else    erb :timeout  endendpost '/timeout.html' do  if pjax?    sleep 1    erb :timeout, :layout => false  else    status 500    erb :boom  endendget '/boom.html' do  status 500  erb :boom, :layout => !pjax?endget '/boom_sans_pjax.html' do  status 500  erb :boom_sans_pjax, :layout => falseendget '/:page.html' do  erb :"#{params[:page]}", :layout => !pjax?endget '/some-&-path/hello.html' do  erb :hello, :layout => !pjax?end
 |