もーんごーもんごー(・ω・´)
scala2.9.0から Dynamic っていう機能が入って、しかも casbah っていう MongoDB の Scala Driver には、それを使えるモジュールが、scala2.9.0でてからすぐに組み込まれました。
https://github.com/mongodb/casbah/tree/master/casbah-dynamic
それで、前からこの機能使ってたんですが、まぁべつに他に使う人いねぇだろうし、ましてや日本語で解説書いても誰も(ry
と思ってたけど、まぁ色々あったので書いてみることにします。
使い方は、上記のgithubのREADME.mdを・・・ではあれなので、一応自分が書いたちょっとしたコードも
引数書くときに、
「慣れればなんとなく 書きやすい and 読みやすい」
だけで、べつにできることが増えるわけではありません。
そして、これ使ってて気づいたのが、「正規表現と日時のオブジェクトに対応していない」っていう点(´・ω・`) このあたり
それでまぁ色々悩みながらtweetしながら、MLに下手な英語で質問してみた経緯↓
ぬる募: これ知ってる人 URL
2011-07-27 19:18:35 via web
英語がががが(´・ω・`)
2011-07-27 19:41:25 via web
2011-07-27 20:15:26 via web
明らかなbugではないけどもなんでここにこの機能だけついてないの? 的な疑問が湧いた。ので、最初は pull request を送ろうかと思ったが、何か意図があるのか(別に継承して拡張して使えば使えないこともない?) と思って結局MLで聞いてみたが、これでよかったのか
そしてそんなことより、質問したら作者本人から回答来たぁ( ´`) URL やっぱり自分で拡張して使えってことか
2011-07-28 10:34:11 via web
http://groups.google.com/group/mongodb-casbah-users/browse_thread/thread/a2722273a98d337e
casbah 以外であまり Dynamic 使っている例を(少なくとも自分は)知らないし、まだScalaのコミュニティ的にも、casbahに入れてみたのも、実験的な感じなんですかね?*2
いやしかし、どうせならデフォルトで正規表現と日時のオブジェクトサポートしてくれてもいいんじゃねーとも思いつつ、たしかにちょっと継承して拡張すればできるし、PartiralFunctionになってて拡張しやすいかたちになっているね(・ω・ )
というわけで、書いてみたのがこちら↓
casbah 自体がどうのこうの とか scalaのDynamicがーーーというより、
英語のMLで質問してみた経験が殆ど無かったので、質問してみてちゃんと言いたいこと伝わって(作者本人から)回答もらったという経験が素直に嬉しかったですね(・ω・ )
*1: tweetの意図は https://github.com/mongodb/casbah/blob/07c91eeda8ebe28a7d13689358959e9c1d5a1776/casbah-dynamic/src/main/scala/DynamicDBObject.scala#L28 このコメントが(・ω・`)? だったので
*2: なんとなく作ったけど、別に今後、Dynamicのモジュールに機能追加する気がなさそうな・・・?