libdo

Untitled

Oct 3rd, 2017
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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"
Add Comment
Please, Sign In to add comment