簡単なRackアプリケーションの作り方
ちゃんと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
簡単ですね。