As Sloth As Possible

可能な限りナマケモノでありたい

タグ:Haml

彼女のステータスを返す」のソースが読みたいというリクエストがあったので、少し書き直してgistに上げてみた。

gist: 112607 - GitHub

一応上の状態でrackupすれば動きます。hamlとrackの最新版が必要な他は特に何も要らないはず。ちなみに1.8.6、1.8.7、1.9.1では動くのを確認済み。んでPassengerで動かすときには、「PassengerでRackアプリを動かす」で書いたように、config.ruと同じ階層にpublicとtmpってディレクトリを作ってやって、コメントアウトしてあるRewindableInputWrapperを有効にしてやればいいはず。

ついでにRack::Testを使って書いたspecと、実際にGETしたりPOSTしたりしてどんなレスポンス返してるのか見るスクリプトも置いといたので、参考までに。

ぶっちゃけRackとHaml(とあとPassenger)で遊びたかっただけなので、「Sinatraのが楽じゃね?」「ってかそれApacheの設定だけでなんとかなりそうな…」とかいうツッコミは無しの方向で。ちなみにRackでオレオレWAFもどき作りにはそろそろ飽きてきたので、今はRamazeさんで遊んでたり。Ramazeさんいいな、気に入った。とはいえこのRackいじりは無駄ではなくて、こういうことやってからRamazeのソース読んでたら案外流れが掴めて良かった。

あとLast-Modifiedの日付とかもうほんと冗談なのでそういう小ネタに食いつくとか無しの方向で。食いつくなよ。絶対に食いつくなよ。絶対だかんな!

日々着実にバカな方にバカな方に向かってるのを実感してるfaultierです、みなさんお久しぶり。

一昨日あたりに見かけた「彼女がいないことをステータスコード404で表わす」ってのが大変ツボに入ったので、今日はせっかくだから実際にそれを実装してみたよ。なんと以下のURLをGETすると「faultierの彼女」ってリソースがいまどんなステータスなのか返してくれるんだ。

http://faultier.jp/resource/kanojo

…まぁ俺に彼女がいるかどうかなんて瑣末なことはどうでも良くて、一応これGET/POST/PUT/DELETEに対応してて、それぞれ違うレスポンスを返すように作ってあるので、生まれついてのHTTPクライアントな感じの少年少女紳士淑女な方々はいろんなリクエストを送って「リソース:faultierの彼女」をいじってみるといいと思うんだ。まぁどう操作しようが何も起きませんが。何、あんま使わないからってサボってGETとPOSTしか実装してない?しょうがないやつだな、GETするときにURLの末尾に/putとか/deleteとか入れてみなよ。それっぽい動きするから。

みごとに400系のステータスコードばっかりになっちゃったけど、せっかく作ったので、そのうち「418 I'm a teapot」とかも実装する予定。ってそれも400系か。あ、あとちなみに、GETするときにmode=prevとかmode=nextってクエリを付けると「前の彼女」「未来の彼女」についての情報も返ってくる。どうでもいいですね。

追記:418も実装した。ついでに多少ステータスコードをいじった。そのリクエストにそのレスポンスは普通無いだろ、みたいのがあるとあれなので。あと、HEADを忘れてたのでHEADも対応した。

Rack可愛いよRack

ネタはネタとして置いとくとして、今回はこれをRackHamlを使って作ってみた。何でかというと、今Ruby版Atompub::Serverみたいの作ってて、RailsやMerbのプラグインもそのうち書くつもりではいるんだけど、まず単体でサクっと動くの作りたいなと思っていろいろいじってるところだったから。Hamlは興味はあったんだけど中々触る機会がなかったので、ついで。

なんというか、Rackは素敵だなぁ。この程度のものを作るのにちゃんとしたWAFを使うのもなんだかゴキブリ退治に対戦車ミサイル持ち出すみたいで気がひけるんだけど、かといってCGIってのもねぇ、みたいなときにもとても良い。簡単な認証とかロギングとかセッションとかは添付のミドルウェア使えば実現できちゃうし、WEBrickとかで簡単にローカル環境で開発サーバ作れちゃうのも魅力的。そんでもって深く考えなくてもWEBrik、thin、mongrel、fcgi、Passengerと色んな環境に対応できちゃうのも素敵だ(というかそれは話が逆で、そのためのインターフェースライブラリなんだけども)。なによりRack::Testが便利すぎる。こんなしょうもないアプリでもちゃんとSpec書いたんだぜ、あんまり簡単だったから。

ハムは食べたいけども

Hamlの方は、なんというか、結構微妙。いやまぁ、確かにすっきりシンプルなテンプレートが書けるんだけど、普段見なれてるHTMLから乖離しすぎててちょっと抵抗あるかも。正直学習コスト考えたら素のHTMLとRubyをそのまま書けるerbやその派生/改善版のテンプレートエンジンのがよっぽどとっつきやすい気がする。一人でやってるときはともかく、デザイナーやマークアッパーとの分業で仕事してると、これ出力がどうなるか想像しながらやんなきゃならなくて作業しづらいんじゃないのかなーとか思ってしまう。

とは言え不思議な魅力もあるのも確かで、文句言いながら書いてたけど数分後にはなんとなく慣れてしまった。趣味でなんか作るときにはしばらく使ってみようかなと思ってたりする。

ところで

一応言っとくけど、あそこからエントリーしても別にデータとか保存してないしメール送ったりもしないので、安心して彼女の名乗りを上げるといいよ!まぁ本当に名乗りたければあんなとこで慎しやかに名乗られても困るけど、いないよねそんな人。

↑このページのトップヘ