Changeset 34 for trunk/lib

Show
Ignore:
Timestamp:
01/23/2006 16:51:15 (3 years ago)
Author:
why
Message:

camping.gemspec: version 1.2.
lib/camping.rb: trying to reflow.
examples/serve: chdir into each example directory when running its app.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/camping.rb

    r32 r34  
    33module Helpers;def R c,*args;p=/\(.+?\)/;args.inject(c.urls.detect{|x|x.scan(p 
    44).size==args.size}.dup){|str,a|str.sub(p,(a.method(a.class.primary_key)[]rescue 
    5 a).to_s)};end;def / p;p[/^\//]?@root+p:p end; def errors_for(o); ul.errors {  
    6 o.errors.each_full { |er| li er } } unless o.errors.empty?; end; end; module Controllers; 
    7 module Base; include Helpers;attr_accessor :input,:cookies,:headers,:body,:status,:root;def 
    8 method_missing(m,*args,&blk);str=m==:render ? markaview(*args,&blk):eval( 
    9 "markaby.#{m}(*args,&blk)");str=markaview(:layout){str}rescue nil;r(200,str. 
    10 to_s);end;def r(s,b,h={});@status=s;@headers.merge!(h);@body=b;end;def  
    11 redirect(c,*args);c=R(c,*args)if c.respond_to?:urls;r(302,'','Location'=>self/c);end;def service(r, 
    12 e,m,a)@status,@headers,@root=200,{},e['SCRIPT_NAME'];cook=C.cookie_parse(e[ 
    13 'HTTP_COOKIE']||e['COOKIE']);qs=C.qs_parse(e['QUERY_STRING']);if "POST"==m;inp=r.read(e[ 
     5a).to_s)};end;def / p;p[/^\//]?@root+p:p end;def errors_for(o);ul.errors{o. 
     6errors.each_full{|er|li er}}unless o.errors.empty?;end;end;module Controllers 
     7module Base; include Helpers;attr_accessor :input,:cookies,:headers,:body, 
     8:status,:root;def method_missing(m,*args,&blk);str=m==:render ? markaview(*args, 
     9&blk):eval("markaby.#{m}(*args,&blk)");str=markaview(:layout){str}rescue nil;r( 
     10200,str.to_s);end;def r(s,b,h={});@status=s;@headers.merge!(h);@body=b;end;def  
     11redirect(c,*args);c=R(c,*args)if c.respond_to?:urls;r(302,'','Location'=>self/c) 
     12end;def service(r,e,m,a)@status,@headers,@root=200,{},e['SCRIPT_NAME'];cook=C.kp( 
     13e['HTTP_COOKIE']);qs=C.qs_parse(e['QUERY_STRING']);if "POST"==m;inp=r.read(e[ 
    1414'CONTENT_LENGTH'].to_i);if %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)|n. 
    1515match(e['CONTENT_TYPE']);b="--#$1";inp.split(/(?:\r?\n|\A)#{Regexp::quote( 
     
    3939A-F]{2})+)/n){[$1.delete('%')].pack('H*')} end;def qs_parse(qs,d ='&;');(qs||'' 
    4040).split(/[#{d}] */n).inject({}){|hsh, p|k,v=p.split('=',2).map{|v|unescape(v)} 
    41 hsh[k]=v unless v.blank?;hsh} end; def cookie_parse(s);c=qs_parse(s,';,') end 
     41hsh[k]=v unless v.blank?;hsh} end; def kp(s);c=qs_parse(s,';,') end 
    4242def run(r=$stdin,w=$stdout);w<<begin;k,a=Controllers.D "/#{ENV['PATH_INFO']}". 
    4343gsub(%r!/+!,'/');m=ENV['REQUEST_METHOD']||"GET";k.class_eval{include C