DIコンテナ、Needleが面白そう!!!
lighttpd + fcgi + Rails + orbjson を動かそうとしててorbjsonをゴニョゴニョ。logger周りとファイルをrequireしてDIコンテナに登録している所を修正したらfcgiでもorbjsonが動くようになった。JSON-RPCつかってのAjaxもwebrickだとほんの一瞬待たされるんだけど、lighttpd + fcgiだとそれが無い。
んでorbjsonのソース読んでて、内部でレジストとかしてるNeedleってなんじゃらほいと思って調べたところ、どうやらRubyのDIコンテナらしい。DIコンテナって漠然としたイメージしか無くって、いまいち何処で何に使うのかサッパリ解らなかったのだけど、これでなんとなく解った。で、もうちょいRuby + DIconについて調べてみると
http://ruby.jamisbuck.org/rails-injected.html
を見つける。Needleを使ったRuby on Rails周りの実装方法の説明。1/3ぐらいしか何書いてあるかわからんけど、DIconって面白い発想だなーとより興味が深まった。いままでこういう考え方をしたことがなかったので楽しー。
で、Rails + orbjsonなんだけど、やっぱActionController内のメソッドに対して、JSON-RPCで叩けないと面白くないよなぁ。フレームワークの外側にあるOrbjsonなんて叩いてもおもしろくねー。
http://wiki.rubyonrails.com/rails/show/IntegrationWithOrbjsonWish
にのWishで書いてあるような感じに使えるとお手軽かつ非常に便利なんだけれど、Rails開発周りはAjaxには力を入れてるけどJSON-RPCにはあんま関心がない*1ご様子で、、、。
*1:本家MLから察するに