Changeset 4 for lib

Show
Ignore:
Timestamp:
01/06/08 16:08:15 (11 months ago)
Author:
jeremymcanal..@gmail.com
Message:

Added support for Thin, evented Mongrel, and Swiftiply.
Added cookies.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lib/vintage/handler.rb

    r2 r4  
    5858          content = Renderer.send(@options[:templates].to_sym, File.open("#{@options[:path]}#{@request_path}.#{@options[:templates]}", "r").read, context) 
    5959         
    60           # Render (if response is 200) or redirect           
    6160          # Set the content type if we're responding with a render 
    6261          context.response.headers["Content-Type"] = "text/html" if context.response.code == 200 
    63           [context.response.code, {}.merge!(context.response.headers), content] 
     62          response = Rack::Response.new(content, context.response.code, {}.merge!(context.response.headers)) 
     63         
     64          # Render (if response is 200) or redirect  
     65          # Set cookies         
     66          if context.response.cookies != {} 
     67            context.response.cookies.each do |key, value| 
     68              response.set_cookie(key, value) 
     69            end 
     70          end 
     71           
     72          response.finish 
    6473        end 
    6574      else 
  • lib/vintage/request_context.rb

    r2 r4  
    66  # response code. 
    77  class Response 
    8     attr_accessor :headers, :code 
     8    attr_accessor :headers, :code, :cookies 
    99   
    1010    def initialize 
    1111      self.headers = {} 
    1212      self.code = 200 
     13      self.cookies = {} 
    1314    end 
    1415  end 
     
    2324      self.request = incoming_request 
    2425      self.response = Vintage::Response.new 
     26    end 
     27     
     28    def cookies 
     29      self.request.cookies 
     30    end 
     31     
     32    def set_cookie(key, val) 
     33      self.response.cookies[key] = val 
    2534    end 
    2635  end 
  • lib/vintage/server.rb

    r2 r4  
    11require 'rubygems' 
    2 require 'mongrel' 
    32 
    43require 'erubis' 
     
    76require 'vintage/log' 
    87require 'vintage/helpers' 
     8 
     9begin 
     10  require 'swiftcore/evented_mongrel' 
     11rescue 
     12  # Don't have it?  No problem! 
     13end 
    914 
    1015require 'rack' 
     
    3035 
    3136      server = Rack::Handler::Mongrel 
    32        
     37             
    3338      case options[:server] 
    3439      when "mongrel" 
    3540        server = Rack::Handler::Mongrel 
     41      when "thin" 
     42        begin 
     43          require 'thin' 
     44          server = Rack::Handler::Thin 
     45        rescue LoadError 
     46          puts "You don't have Thin installed!" 
     47          exit 
     48        end 
    3649      when "webrick" 
    3750        server = Rack::Handler::WEBrick