aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/gems/rack-1.1.0/lib/rack/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/rack-1.1.0/lib/rack/server.rb')
-rw-r--r--vendor/gems/rack-1.1.0/lib/rack/server.rb212
1 files changed, 0 insertions, 212 deletions
diff --git a/vendor/gems/rack-1.1.0/lib/rack/server.rb b/vendor/gems/rack-1.1.0/lib/rack/server.rb
deleted file mode 100644
index 2bb20aaea..000000000
--- a/vendor/gems/rack-1.1.0/lib/rack/server.rb
+++ /dev/null
@@ -1,212 +0,0 @@
-require 'optparse'
-
-module Rack
- class Server
- class Options
- def parse!(args)
- options = {}
- opt_parser = OptionParser.new("", 24, ' ') do |opts|
- opts.banner = "Usage: rackup [ruby options] [rack options] [rackup config]"
-
- opts.separator ""
- opts.separator "Ruby options:"
-
- lineno = 1
- opts.on("-e", "--eval LINE", "evaluate a LINE of code") { |line|
- eval line, TOPLEVEL_BINDING, "-e", lineno
- lineno += 1
- }
-
- opts.on("-d", "--debug", "set debugging flags (set $DEBUG to true)") {
- options[:debug] = true
- }
- opts.on("-w", "--warn", "turn warnings on for your script") {
- options[:warn] = true
- }
-
- opts.on("-I", "--include PATH",
- "specify $LOAD_PATH (may be used more than once)") { |path|
- options[:include] = path.split(":")
- }
-
- opts.on("-r", "--require LIBRARY",
- "require the library, before executing your script") { |library|
- options[:require] = library
- }
-
- opts.separator ""
- opts.separator "Rack options:"
- opts.on("-s", "--server SERVER", "serve using SERVER (webrick/mongrel)") { |s|
- options[:server] = s
- }
-
- opts.on("-o", "--host HOST", "listen on HOST (default: 0.0.0.0)") { |host|
- options[:Host] = host
- }
-
- opts.on("-p", "--port PORT", "use PORT (default: 9292)") { |port|
- options[:Port] = port
- }
-
- opts.on("-E", "--env ENVIRONMENT", "use ENVIRONMENT for defaults (default: development)") { |e|
- options[:environment] = e
- }
-
- opts.on("-D", "--daemonize", "run daemonized in the background") { |d|
- options[:daemonize] = d ? true : false
- }
-
- opts.on("-P", "--pid FILE", "file to store PID (default: rack.pid)") { |f|
- options[:pid] = f
- }
-
- opts.separator ""
- opts.separator "Common options:"
-
- opts.on_tail("-h", "--help", "Show this message") do
- puts opts
- exit
- end
-
- opts.on_tail("--version", "Show version") do
- puts "Rack #{Rack.version}"
- exit
- end
- end
- opt_parser.parse! args
- options[:config] = args.last if args.last
- options
- end
- end
-
- def self.start
- new.start
- end
-
- attr_accessor :options
-
- def initialize(options = nil)
- @options = options
- end
-
- def options
- @options ||= parse_options(ARGV)
- end
-
- def default_options
- {
- :environment => "development",
- :pid => nil,
- :Port => 9292,
- :Host => "0.0.0.0",
- :AccessLog => [],
- :config => "config.ru"
- }
- end
-
- def app
- @app ||= begin
- if !::File.exist? options[:config]
- abort "configuration #{options[:config]} not found"
- end
-
- app, options = Rack::Builder.parse_file(self.options[:config], opt_parser)
- self.options.merge! options
- app
- end
- end
-
- def self.middleware
- @middleware ||= begin
- m = Hash.new {|h,k| h[k] = []}
- m["deployment"].concat [lambda {|server| server.server =~ /CGI/ ? nil : [Rack::CommonLogger, $stderr] }]
- m["development"].concat m["deployment"] + [[Rack::ShowExceptions], [Rack::Lint]]
- m
- end
- end
-
- def middleware
- self.class.middleware
- end
-
- def start
- if options[:debug]
- $DEBUG = true
- require 'pp'
- p options[:server]
- pp wrapped_app
- pp app
- end
-
- if options[:warn]
- $-w = true
- end
-
- if includes = options[:include]
- $LOAD_PATH.unshift *includes
- end
-
- if library = options[:require]
- require library
- end
-
- daemonize_app if options[:daemonize]
- write_pid if options[:pid]
- server.run wrapped_app, options
- end
-
- def server
- @_server ||= Rack::Handler.get(options[:server]) || Rack::Handler.default
- end
-
- private
- def parse_options(args)
- options = default_options
-
- # Don't evaluate CGI ISINDEX parameters.
- # http://hoohoo.ncsa.uiuc.edu/cgi/cl.html
- args.clear if ENV.include?("REQUEST_METHOD")
-
- options.merge! opt_parser.parse! args
- options
- end
-
- def opt_parser
- Options.new
- end
-
- def build_app(app)
- middleware[options[:environment]].reverse_each do |middleware|
- middleware = middleware.call(self) if middleware.respond_to?(:call)
- next unless middleware
- klass = middleware.shift
- app = klass.new(app, *middleware)
- end
- app
- end
-
- def wrapped_app
- @wrapped_app ||= build_app app
- end
-
- def daemonize_app
- if RUBY_VERSION < "1.9"
- exit if fork
- Process.setsid
- exit if fork
- Dir.chdir "/"
- ::File.umask 0000
- STDIN.reopen "/dev/null"
- STDOUT.reopen "/dev/null", "a"
- STDERR.reopen "/dev/null", "a"
- else
- Process.daemon
- end
- end
-
- def write_pid
- ::File.open(options[:pid], 'w'){ |f| f.write("#{Process.pid}") }
- at_exit { ::File.delete(options[:pid]) if ::File.exist?(options[:pid]) }
- end
- end
-end