View difference between Paste ID: ShUQST6a and 0KRQjxz6
SHOW: | | - or go back to the newest paste.
1
%w.rack tilt backports INT TERM..map{|l|trap(l){$r.stop}rescue require l}
2
$n=Sinatra=Module.new
3
{
4
  extend Rack;
5
  a = Builder.new
6
  D = Object.method(:define_method)
7
  $p = 4567
8
  S = /@@ *([^\n]+)\n(((?!@@)[^\n]*\n)*)/m;
9
  q,Application=a
10
11
  %w[get post put delete].map{|m|
12
    D.(m){|u,&b|
13
      a.map(u){run->(e){[200,{"Content-Type"=>"text/html"},[a.instance_eval(&b)]]}}
14
    }
15
  }
16
  Tilt.mappings.map{|k,v|
17
    D.(k){|n,*o|
18
        $t||=(h={};File.read(caller[0][/^[^:]+/]).scan(S){|a,b|h[a]=b};h);
19
        v.new(*o){n.to_s==n ?n:$t[n.to_s]}.render(a,o[0].try(:[],:locals)||{})
20
    }
21
  }
22
23
  %w[set enable disable configure helpers use register].map{|m|
24
    D.(m){|*_,&b|b.try :[]}
25
  };
26
27
  END{Handler.get("webrick").run(a,Port:$p){|s|$r=s}}
28
29
  %w[params session].map{|m|
30
    D.(m){q.send m}
31
  };
32
  
33
  a.use Session::Cookie;
34
  a.use Lock
35
  D.(:before){|&b|
36
    a.use Rack::Config,&b
37
  };
38
  before{|e|q=Request.new e;q.params.dup.map{|k,v|params[k.to_sym]=v}}
39
}
40
puts "== almost #$n/No Version has taken the stage on #$p for development with backup from Webrick"