~ubuntu-branches/ubuntu/saucy/camping/saucy-proposed

« back to all changes in this revision

Viewing changes to lib/camping.rb

  • Committer: Package Import Robot
  • Author(s): Paul van Tilburg
  • Date: 2013-06-06 21:57:41 UTC
  • mfrom: (1.1.3)
  • Revision ID: package-import@ubuntu.com-20130606215741-xk9tww2ybvpu42u4
Tags: 2.1.532-1
* New upstream release 
* debian/control: 
  - Bumped standards version to 3.9.4; no changes required 
  - Add build-depend on ruby-minitest
  - Change build depend on ruby-activerecord-2.3 into
    ruby-activerecord-3.2
  - Bump build-depend and depend on ruby-mab to >= 0.0.3
* d/p/allow-POST-through-Rack-File.patch: dropped, applied upstream 

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
require "uri";require "rack";class Object;def meta_def m,&b;(class<<self;self
2
2
end).send:define_method,m,&b end end;module Camping;C=self;S=IO.read(__FILE__
3
 
)rescue nil;P="<h1>Cam\ping Problem!</h1><h2>%s</h2>";U=Rack::Utils;O={};Apps=[]
4
 
class H<Hash;def method_missing m,*a;m.to_s=~/=$/?self[$`]=a[0]:a==[]?self[m.
 
3
)rescue nil;P="<h1>Cam\ping Problem!</h1><h2>%s</h2>";U=Rack::Utils;O={};Apps=[];
 
4
SK=:camping;class H<Hash;def method_missing m,*a;m.to_s=~/=$/?self[$`]=a[0]:a==[]?self[m.
5
5
to_s]:super end;undef id,type if ??==63 end;class Cookies<H;attr_accessor :_p;
6
6
def _n;@n||={}end;alias :_s :[]=;def set k,v,o={};_s(j=k.to_s,v);_n[j]=
7
7
{:value=>v,:path=>_p}.update o;end;def []=(k,v)set(k,v,v.is_a?(Hash)?v:{})end
23
23
h,b if Hash===b;@status=s;@headers.merge!(h);@body=b end;def redirect *a;r 302,
24
24
'','Location'=>URL(*a).to_s end;def r404 p;P%"#{p} not found"end;def r500 k,m,e
25
25
raise e end;def r501 m;P%"#{m.upcase} not implemented"end;def serve(p,c)
26
 
(t=Rack::Mime.mime_type p[/\..*$/],nil)&&@headers["Content-Type"]=t;c;end;def to_a;@env[
27
 
'rack.session']=Hash[@state];r=Rack::Response.new(@body,@status,@headers)
 
26
(t=Rack::Mime.mime_type p[/\..*$/],"text/html")&&@headers["Content-Type"]=t;c;end;def to_a;@env[
 
27
'rack.session'][SK]=Hash[@state];r=Rack::Response.new(@body,@status,@headers)
28
28
@cookies._n.each{|k,v|r.set_cookie k,v};r.to_a end;def initialize env,m
29
29
r=@request=Rack:: Request.new(@env=env);@root,@input,@cookies,@state,@headers,
30
30
@status,@method=r.script_name.sub(/\/$/,''),n(r.params),Cookies[r.cookies],
31
 
H[r.session.to_hash],{},m=~/r(\d+)/?$1.to_i: 200,m;@cookies._p=self/"/" end
 
31
H[r.session[SK]||{}],{'Content-Type'=>'text/html'},m=~/r(\d+)/?$1.to_i: 200,m;@cookies._p=self/"/" end
32
32
def n h;Hash===h ?h.inject(H[]){|m,(k,v)|m[k]=
33
33
n(v);m}: h end;def service *a;r=catch(:halt){send(@method,*a)};@body||=r;self
34
34
end end;module Controllers;@r=[];class<<self;def R *u;r=@r;Class.
41
41
@r=[k]+@r if @r-[k]==@r;k.meta_def(:urls){["/#{c.to_s.scan(/.[^A-Z]*/).map(&
42
42
N.method(:[]))*'/'}"]}if !k.respond_to?:urls}end end;I=R()end;X=
43
43
Controllers;class<<self;def
44
 
goes m;Apps<<a=eval(S.gsub(/Camping/,m.to_s),TOPLEVEL_BINDING);caller[0]=~/:/
 
44
goes m,g=TOPLEVEL_BINDING;Apps<<a=eval(S.gsub(/Camping/,m.to_s),g);caller[0]=~/:/
45
45
IO.read(a.set:__FILE__,$`)=~/^__END__/&&(b=$'.split /^@@\s*(.+?)\s*\r?\n/m).shift rescue nil
46
46
a.set :_t,H[*b||[]];end;def call e;X.M
47
47
k,m,*a=X.D e["PATH_INFO"],e['REQUEST_METHOD'].