Rack
$ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] $ gem list | grep rack rack (1.3.0)という環境で: require 'rack' class MyApp def call(env) [200, {"Content-Type" => "text/plain"}, [Rack::Request.new(env)['hoge'].encoding…
RailsでいうところのMongrelClusterのような、複数のHTTPデーモンを起動したり停止したりする仕組みがRackにもあったら便利だなーと思い、Daemonsを使う方法を考えてみました。以下、サンプルコードに注釈をまじえながら。 まずはrequire require 'rubygems'…
コミットされてました。 ConditionalGet middleware (Last-Modified/Etag) · chneukirchen/rack@3b31e21 · GitHub 実装を見ると、If-None-Matchが「*」や複数のエンティティタグに対応しておらず、RFC的には微妙な感じ。とはいえ、そんなリクエストを投げる…
去る21日に、Rack 0.4がリリースされていました。 [ANN] Rack 0.4, a modular Ruby webserver interface == Changes * August 21st, 2008: Fourth public release 0.4. * New middleware, Rack::Deflater, by Christoffer Sawicki. * OpenID authentication …
あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。その際に気づいたことや工夫した点などを、備忘録を兼ねて書いています。その19回目です。 Rackの挙動を確認 PintoではR…
TDDならモックの出番はない? いつものように思いつきエントリなので、眉にツバをキュッキュとつけてお読みいただければ幸いです。「Pinto公開に向けて #18 ― RSpecのモックを使ってみた」では、Rackエントリポイントの実装と、そのテストコードを考えました…
あらすじ Pintoというソーシャルブックマークサービス、およびPintoBeansというWebアプリケーションフレームワークをRubyで開発中です。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その18回目です。 Rackインターフェーサが必要だ…
あらすじ Pintoというソーシャルブックマークサービスを、Rubyで開発中です(GitHubリポジトリ)。開発中に気づいたことや工夫した点などを、備忘録も兼ねて書いています。その14回目です。 本題 Rack本体のbin/rackupにはいろいろなオプションを渡せます。 …
RackのSPECを引用します。 There must be a Content-Type, except when the Status is 204 or 304, in which case there must be none given. http://rack.rubyforge.org/doc/files/SPEC.html ステータスコードが204でも304でもない場合、Content-Typeレスポ…