おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

簡単な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  

簡単ですね。