root/lang/ruby/ssb/ssb-webrick.rb @ 2071

Revision 2071, 0.9 kB (checked in by tokuhirom, 5 years ago)

lang/ruby/ssb: WebrickServlet? としてやったら構成がスッキリするんじゃね & Webrick で動かいたときに高速になるんじゃね??という気がしたのでそうしてみた。気にくわなかったら revert しやってくだしあ

Line 
1require 'webrick'
2require 'optparse'
3
4port = 10080
5bind_address = '127.0.0.1'
6cgi_mode = false
7
8opt = OptionParser.new
9opt.on('-p port', '--port port') {|v| port = v.to_i }
10opt.on('--bind ip') {|v| bind_address = v }
11opt.on('--cgi-mode') {|v| cgi_mode = true } # only for debugging?
12opt.parse!(ARGV)
13
14bindir = File.dirname(__FILE__)
15docroot = File.expand_path(File.join(bindir, 'public_html'))
16Dir.chdir(docroot)
17require '../config/common.rb'
18require 'ssb.rb'
19
20srv = WEBrick::HTTPServer.new({
21  :DocumentRoot => docroot,
22  :BindAddress => bind_address,
23  :Port => port,
24})
25trap("INT"){ srv.shutdown }
26
27if cgi_mode
28  srv.mount('/', WEBrick::HTTPServlet::CGIHandler, File.join(docroot, 'index.rbx'))
29else
30  srv.mount_proc('/') {|req, res|
31    app = SSB::Application.new
32    app.run(req, res)
33  }
34end
35
36%w(javascripts stylesheets emoji images).each {|x|
37    srv.mount("/#{x}/", WEBrick::HTTPServlet::FileHandler, File.join(docroot, x))
38}
39srv.start
40
Note: See TracBrowser for help on using the browser.