2009-10-05
_ [Ruby][Rack] Rackについて勉強中
Rackとは、WebサーバとWebアプリケーションの間で動作する変換アダプター、クッションです。
対応しているWebサーバは、'cgi', 'fastcgi', 'mongrel', 'webrick'などなど。
詳しくはRackのrack/handler.rbを参照してください。
簡単な動かし方は以下の通り。
まず、rack_sample01.rb
module Rack
class HelloRackWorld
def call(env)
res = Response.new
res.write "HelloRackWorld!!"
res.finish
end
end
end
次にrack_sample01.ru
require 'rack_sample01'
run Rack::HelloRackWorld.new
を作成する。
rackup rack_sample01.ru
rack_sample01.ruを実行するとポート番号9292でWebサーバが起動するはずなので、アクセスすると、
HelloRackWorld!!と表示されるはず。
[ツッコミを入れる]
2009-10-07
_ [Ruby][Rack] Rackについて勉強中 その2
前回使用したrackupを使わずに実行する方法は以下の通り。
module Rack
class HelloRackWorld
def call(env)
res = Response.new
res.write "HelloRackWorld!!"
res.finish
end
end
end
require 'rack'
Rack::Handler::WEBrick.run Rack::HelloRackWorld.new, :Port=>9292
callメソッドを持っているオブジェクトなら呼び出しが可能なので、ProcやLambdaをつかってもOK。
例えば、
module Rack
class HelloRackWorld
def self.rackworld
Proc.new do |env| [200, {'Content-Type' => 'text/plain'}, "Hello Proc Rack World!!"] end
end
end
end
require 'rack'
Rack::Handler::WEBrick.run Rack::HelloRackWorld.rackworld, :Port=>9292
もOK。
本日のツッコミ(全4件) [ツッコミを入れる]
Before...
_ りゅう [白いの出た〜。 おなかを壊している時だったから白い水でした・・・。]
_ ドラゴン十石 [俺はやったことないけど、確か終わったら下剤を飲まされるはずだから、ゲリになります。 寒くなるから体調気をつけてね。]
_ りゅう [おなかの調子が悪いときに、下剤を飲んだから大変でした。。。 牛乳が出た!!って思った。 ドラゴン十石さんも風邪など気..]