Parent

Namespace

Class Index [+]

Quicksearch

Rack::Server

Attributes

options[RW]

(Not documented)

Public Class Methods

middleware() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 119
119:     def self.middleware
120:       @middleware ||= begin
121:         m = Hash.new {|h,k| h[k] = []}
122:         m["deployment"].concat  [lambda {|server| server.server =~ /CGI/ ? nil : [Rack::CommonLogger, $stderr] }]
123:         m["development"].concat m["deployment"] + [[Rack::ShowExceptions], [Rack::Lint]]
124:         m
125:       end
126:     end
new(options = nil) click to toggle source

(Not documented)

    # File lib/rack/server.rb, line 88
88:     def initialize(options = nil)
89:       @options = options
90:     end
start() click to toggle source

(Not documented)

    # File lib/rack/server.rb, line 82
82:     def self.start
83:       new.start
84:     end

Public Instance Methods

app() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 107
107:     def app
108:       @app ||= begin
109:         if !::File.exist? options[:config]
110:           abort "configuration #{options[:config]} not found"
111:         end
112: 
113:         app, options = Rack::Builder.parse_file(self.options[:config], opt_parser)
114:         self.options.merge! options
115:         app
116:       end
117:     end
default_options() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 96
 96:     def default_options
 97:       {
 98:         :environment => "development",
 99:         :pid         => nil,
100:         :Port        => 9292,
101:         :Host        => "0.0.0.0",
102:         :AccessLog   => [],
103:         :config      => "config.ru"
104:       }
105:     end
middleware() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 128
128:     def middleware
129:       self.class.middleware
130:     end
options() click to toggle source

(Not documented)

    # File lib/rack/server.rb, line 92
92:     def options
93:       @options ||= parse_options(ARGV)
94:     end
server() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 158
158:     def server
159:       @_server ||= Rack::Handler.get(options[:server]) || Rack::Handler.default
160:     end
start() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 132
132:     def start
133:       if options[:debug]
134:         $DEBUG = true
135:         require 'pp'
136:         p options[:server]
137:         pp wrapped_app
138:         pp app
139:       end
140: 
141:       if options[:warn]
142:         $-w = true
143:       end
144: 
145:       if includes = options[:include]
146:         $LOAD_PATH.unshift *includes
147:       end
148: 
149:       if library = options[:require]
150:         require library
151:       end
152: 
153:       daemonize_app if options[:daemonize]
154:       write_pid if options[:pid]
155:       server.run wrapped_app, options
156:     end

Private Instance Methods

build_app(app) click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 178
178:       def build_app(app)
179:         middleware[options[:environment]].reverse_each do |middleware|
180:           middleware = middleware.call(self) if middleware.respond_to?(:call)
181:           next unless middleware
182:           klass = middleware.shift
183:           app = klass.new(app, *middleware)
184:         end
185:         app
186:       end
daemonize_app() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 192
192:       def daemonize_app
193:         if RUBY_VERSION < "1.9"
194:           exit if fork
195:           Process.setsid
196:           exit if fork
197:           Dir.chdir "/"
198:           ::File.umask 0000
199:           STDIN.reopen "/dev/null"
200:           STDOUT.reopen "/dev/null", "a"
201:           STDERR.reopen "/dev/null", "a"
202:         else
203:           Process.daemon
204:         end
205:       end
opt_parser() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 174
174:       def opt_parser
175:         Options.new
176:       end
parse_options(args) click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 163
163:       def parse_options(args)
164:         options = default_options
165: 
166:         # Don't evaluate CGI ISINDEX parameters.
167:         # http://hoohoo.ncsa.uiuc.edu/cgi/cl.html
168:         args.clear if ENV.include?("REQUEST_METHOD")
169: 
170:         options.merge! opt_parser.parse! args
171:         options
172:       end
wrapped_app() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 188
188:       def wrapped_app
189:         @wrapped_app ||= build_app app
190:       end
write_pid() click to toggle source

(Not documented)

     # File lib/rack/server.rb, line 207
207:       def write_pid
208:         ::File.open(options[:pid], 'w'){ |f| f.write("#{Process.pid}") }
209:         at_exit { ::File.delete(options[:pid]) if ::File.exist?(options[:pid]) }
210:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.