Changeset 34 for trunk/examples

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/examples/serve

    r28 r34  
    1 #!/bin/env ruby 
     1#!/usr/bin/env ruby 
    22# 
    33# Serves all examples, mounted into Webrick. 
     
    55require 'stringio' 
    66require 'webrick/httpserver' 
     7 
     8dir = Dir.pwd 
    79apps =  
    810    Dir['*'].select do |d| 
     11        Dir.chdir(dir) 
    912        if File.exists? "#{d}/#{d}.rb" 
    10             load "#{d}/#{d}.rb" 
     13            begin 
     14                Dir.chdir("#{dir}/#{d}") 
     15                load "#{d}.rb" 
     16                true 
     17            rescue Exception => e 
     18                puts "Camping app `#{d}' will not load: #{e.class} #{e.message}" 
     19            end 
    1120        end 
    1221    end 
     
    3140                header.delete('status') 
    3241              end 
    33               if header.has_key?('set-cookie') 
    34                 header['set-cookie'].each{|k| 
    35                   self.cookies << WEBrick::Cookie.parse_set_cookie(k) 
    36                 } 
    37                 header.delete('set-cookie') 
    38               end 
    3942              header.each{|key, val| self[key] = val.join(", ") } 
    4043            rescue => ex 
     
    4346            self.body = body 
    4447        end 
     48        Dir.chdir("#{dir}/#{app}") 
    4549        klass.run((req.body and StringIO.new(req.body)), resp) 
     50        Dir.chdir(dir) 
     51        nil 
    4652    end 
    4753end