webrick_server.rb

上記の「script/server」は「webrick_server」を利用していました。

webrick_server.rb

# Donated by Florian Gross

require 'webrick'
require 'cgi'
require 'stringio'

include WEBrick

ABSOLUTE_RAILS_ROOT = File.expand_path(RAILS_ROOT)

ActiveRecord::Base.threaded_connections = false

class CGI
...
end

class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet
...
def service(req, res)
...
end
...
end

このファイルを見て、分かったこと、分からなかったこと。

  • webrick_server.rbは「(Rubyのインストールディレクトリ)/lib/ruby/gems/1.8/gems/rails-0.13.1/lib」
    • rubygemsでインストールしたものは、ここに入るみたい。
    • 疑問?:Javaでいうところのクラスパスはどうなっているんでしょうかね。rubygemsが解決?
  • 一つのファイルにいくつものクラスを書いてもオッケー
  • WEBrick::HTTPServlet::AbstractServlet・・・Servlet?Why?Rubyなのに。
  • 当たり前だけど、JARのようなバイナリと違ってスクリプトなので、いつでもrailsソースコード読み放題。小さいことだけど、意外とでかい。