Guest User

Untitled

a guest
May 25th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. require "uri";require "rack";class Object;def meta_def m,&b;(class<URL(*a).
  2. to_s;end;def r404 p;P%"#{p} not found"end;def r500 k,m,e;raise e;end;def r501 m
  3. P%"#{m.upcase} not implemented"end;def to_a;@env['rack.session']=@state;r=Rack::
  4. Response.new(@body,@status,@headers);@cookies.each{|k,v|next if @old_cookies[
  5. k]==v;v={:value=>v,:path=>self/"/"} if String===v;r.set_cookie(k,v)};r.to_a;end
  6. def initialize(env,m) r=@request=Rack::Request.new(@env=env);@root,@input,
  7. @cookies,@state,@headers,@status,@method=r.script_name.sub(/\/$/,''),n(r.params
  8. ),H[@old_cookies = r.cookies],H[r.session],{},m=~/r(\d+)/?$1.to_i: 200,m end;def
  9. n h;Hash===h ?h.inject(H[]){|m,(k,v)|m[k]=n(v);m}: h end;def service *a;r=catch(
  10. :halt){send(@method,*a)};@body||=r;self;end;end;module Controllers;@r=[];class<<
  11. self;def r;@r end;def R *u;r=@r;Class.new{meta_def(:urls){u};meta_def(:inherited
  12. ){|x|r<'(\d+)',"X"=>'([^/]+)',
  13. "Index"=>'';def M;def M;end;constants.map{|c|k=const_get(c);k.send:include,C,
  14. Base,Helpers,Models;@r=[k]+r if r-[k]==r;k.meta_def(:urls){ [ "/#{c.scan(
  15. /.[^A-Z]*/).map(&N.method(:[]))*'/'}"]}if !k.respond_to?:urls}end end;I=R()
  16. end;X=Controllers;class<<e).to_a;end;def method_missing m,c,*a;X.M;h=Hash===a[-1]?
  17. a.pop: {};e=H[Rack::MockRequest.env_for('',h.delete(:env)||{})];k=X.const_get(c
  18. ).new(e,m.to_s);h.each{|i,v|k.send"#{i}=",v};k.service(*a);end;def use*a,&b;m=a.
  19. shift.new(method(:call),*a,&b);meta_def(:call){|e|m.call(e)}end end;module Views
  20. include X,Helpers end;module Models;autoload:Base,
  21. 'camping/ar';end;autoload:Mab,'camping/mab';C end
Add Comment
Please, Sign In to add comment