
今日は免許の更新で鮫洲の試験場へ朝から行ってきました。すごく空いていて、あっという間に手続きは完了。今回、はじめてのゴールド免許なので講習も30分で終了しました。楽ちん。免許制度がちょっと変わったせいで、ぼくの持っていた普通免許は中型免許(8トン限定)に変わりました。おもしろい。バイクの免許は昔、中型限定から普通二輪に変わったので、ちょうど逆な感じですね。
朝、家を出る前にがっちりマンデーを見ました。食べログというサイトが紹介されていました。
鮫洲から京急で川崎へ。川崎チネチッタで涼宮ハルヒの消失(映画です)を見るためです。改札でユルさんと待ち合わせて映画館へ。映画はとてもおもしろかったです。帰ってから小説を読み返したのですが、かなり忠実に作られていました。
Rails3.0では、独自のクラスをRackに積みたいときはconfig/application.rbで以下のように書けばいいようです。
module AppName
class Application < Rails::Application
.....(略)
config.middleware.use "::NewRackClass"
end
end
これでStackの中にNewRackClassが積まれます。
[tsukasa@ubuntu] $ rake middleware [~/devel/lesson]
(in /home/tsukasa/devel/app_name)
use ActionDispatch::Static
use Rack::Lock
use Rack::Runtime
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::Callbacks
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::MethodOverride
use ActionDispatch::Head
use NewRackClass
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
run AppName::Application.routes
途中に挿入したいときはinsertメソッドなどを使用すればOKです。
ちゃんと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
簡単ですね。

そういえば、先週は伊東のほうへ開発合宿に出かけていました。開発合宿では有名な山喜旅館です。
というわけで今週はひさしぶり何の予定もない週末でした。おかげでのんびり過ごせました。予定といえば市長選挙と市議会議員選挙の投票に行ったくらい。ユルさんに髪を切ってもらったりウイイレで日本代表に招集されたりしていました。
来週はいよいよ楽しみにしていた旅行の日です。