「Rack」の編集履歴(バックアップ)一覧に戻る

Rack - (2009/01/10 (土) 03:48:21) のソース

= Rack =
WEBアプリケーションサーバ抽象


http://rack.rubyforge.org/
http://labs.unoh.net/2007/05/rackweb.html
http://blog.hacklife.net/archives/51439023.html


動作まとめ
http://d.hatena.ne.jp/authorNari/20080304/1204621583

http://m.onkey.org/2008/11/17/ruby-on-rack-1

http://m.onkey.org/2008/11/18/ruby-on-rack-2-rack-builder





JSONP
http://actsasflinn.com/2008/06/16/json-p-rack-handler

Rack-contrib (ミドルウェアまとめ)
http://github.com/rtomayko/rack-contrib/tree/master

rack-cache
http://github.com/rtomayko/rack-cache/tree/master

rack-config
http://github.com/jcrosby/rack-config/tree/master

rack-auth-ip
http://github.com/walf443/rack-auth-ip/tree/master

rack-jpmobile
http://github.com/walf443/rack-jpmobile/tree/master

rack-javascript-minifier
http://github.com/lucianopanaro/rack-javascript-minifier/tree/master

== Rackの動作 ==

*rackup コマンドでWEBサーバの依存関係を吸収できる。
*Rack::Builder.to_appが肝。


**rack-0.3.0/bin/rackup
 起動オプションとデフォルトポート9292
 .ruファイルの読み込み
  Rack.new で該当WEBサーバ用の処理のためevalしてinner_appに。
 デプロイ
  app = Rack::Builder.new{いろいろ,inner_app}.to_app

**rack-0.3.0/lib/rack/builder.rb
 初期化(initialize)
 DSL(use run map)
 to_app
  @insの最後の値がHashならRack::URLMap.newに置き換え。
  @insを最後から1つずつとりだす。
  取り出した(useした)オブジェクトのinitializeに引数で渡してnewする。(を繰り返す)
  (ExampleではShowExceptionsとCommonLogger。)

**rack-0.3.0/lib/rack/handler/<WEBサーバ>.rb
 self.runでto_appで積んだインスタンスのデプロイする。
 リクエストがあった場合。
  WEBrickの場合service
  Mongrelの場合process
  SCGIの場合process_request
 @app.callでHTTPレスポンスを作成してbodyに格納。

**rack-0.3.0\lib\rack\showexceptions.rb例
 callで再起呼び出し。
 runまで例外なく処理が進むと<WEBサーバ>に処理を渡す。
記事メニュー
目安箱バナー