ちゃんとRackを勉強してなかったので、ちょっと遊んでみました。 基本的にはrackupファイルを作ってリクエストに対するレスポンスを返すクラスのインスタンスをrunメソッドで指定してあげればOKです。rackupファイルは拡張子.ruを使います。

config.ru

require 'rubygems'
require 'rack'

run Application.new

application.rb

class Application
  def call(env)
    request = Rack::Request.new(env)
    body = "ok"
    response = Rack::Response.new do |r|
      r.status = 200
      r["Content-Type"] = "text/plain;charset=utf8"
      r.write body
    end
    response.finish
  end
end

あとはrackupコマンドでこのrackupファイルを指定してあげると、webrickが起動します。ポート9292でアクセスできます。

[tsukasa@ubuntu] $ rackup config.ru
192.168.0.1 - - [18/Feb/2010 23:27:15] "GET /test/ HTTP/1.1" 200 26 0.0000

Rackに新しい処理を行うクラスを追加してみます。 test_add.rb

class TestAdd
  def initialize(app)
    @app = app
  end

  def call(env)
    res = @app.call(env)
    res.last.write(" OK!")
    res
  end
end

そしてrackup.ruファイルに新しく作ったクラスを積みます。 config.ru

use TestAdd
run Application.new

簡単ですね。