root/lib/vintage/server.rb

Revision 6, 1.5 kB (checked in by jeremymcanal..@gmail.com, 9 months ago)

DRY'ing up the ErrorReporter?
Small fixes/tweaks to hoe config
Added rescue for Mongrel::StopServer?

Line 
1 require 'rubygems'
2
3 require 'erubis'
4
5 require 'vintage/version'
6 require 'vintage/log'
7 require 'vintage/helpers'
8
9 begin
10   require 'swiftcore/evented_mongrel'
11 rescue
12   # Don't have it?  No problem!
13 end
14
15 require 'rack'
16 require 'rack/file'
17
18 begin
19   Dir.entries("helpers/").select{|entry| entry =~ /(.*).rb$/}.each do |helper_file|
20     Vintage::Helpers.module_eval(File.open(helper_file).read)
21   end
22 rescue
23   # No helpers
24 end
25
26 module Vintage
27   # Launches the Mongrel handler.
28   class Server
29     def self.run(options)
30       Log.enter "- vintage version #{VERSION::STRING}"
31       Log.enter "\t starting server on port #{options[:port]}"
32       Log.enter
33
34       application = Handler.new(options)
35
36       server = Rack::Handler::Mongrel
37            
38       case options[:server]
39       when "mongrel"
40         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
49       when "webrick"
50         server = Rack::Handler::WEBrick
51       when "cgi"
52         server = Rack::Handler::CGI
53       when "fastcgi"
54         server = Rack::Handler::FastCGI
55       end
56
57       server.run application, {:Port => options[:port], :Host => "0.0.0.0", :AccessLog => []}
58     rescue Interrupt, Mongrel::StopServer
59       Log.enter
60       Log.enter "- interrupt signal caught"
61       Log.enter "\tshutting server down"
62       Log.enter
63       exit 0
64     end
65   end
66 end
Note: See TracBrowser for help on using the browser.