「Rack」(2009/01/11 (日) 11:55:23) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
= 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://chneukirchen.org/blog/archive/2007/02/introducing-rack.html
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
** そのままだと json コンパイルしないといけないので変わりに json_pure を使う方法
サイトからrack-contrib ダウンロード
展開した中の .gemspecを開いて 47行目あたりの s.add_dependency 'json' を 'json_pure' に変更
展開したファイルを<ruby_gems_root>/gems/rack-contrib-0.4.0にコピー
先ほど編集した.gemspecファイルを<ruby_gems_root>/specifications/rack-contrib-0.4.0.gemspec にコピー
足りない gem をインストール
rake test => 幸せ
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サーバ>に処理を渡す。
= 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://chneukirchen.org/blog/archive/2007/02/introducing-rack.html
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
** そのままだと json コンパイルしないといけないので変わりに json_pure を使う方法
サイトからrack-contrib ダウンロード
展開した中の .gemspecを開いて 47行目あたりの s.add_dependency 'json' を 'json_pure' に変更
展開したファイルを<ruby_gems_root>/gems/rack-contrib-0.4.0にコピー
先ほど編集した.gemspecファイルを<ruby_gems_root>/specifications/rack-contrib-0.4.0.gemspec にコピー
足りない gem をインストール
rake test => 幸せ(sendfileはwindowsのファイルパスに対応していなげ)
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サーバ>に処理を渡す。
表示オプション
横に並べて表示:
変化行の前後のみ表示: