@tomykairaさんの素晴らしいエントリーに触発されて、Lokkaの現在の課題と何をしようとしてるのかを書いてみます。
[lokka][ruby][test]lokka コミッタからのお願いをお読みください - tomykaira makes love with codes
テスト問題も重要で@tomykairaさんや皆さんの協力でテスト拡充に向けて動き始めました。それとは別に僕の取り組んでる事について。
優先してやりたいこと
- プラグインの仕様を決めること。
- gem化。
- 普通の人でも使えるようにすること。
Lokkaに足りない機能は色々ありますが、まずは機能を追加して行ける土台を作ることが大事だと思っています。gem化もその土台に必要なものです。
現在の問題
- gem化可能なプラグインの仕様がちとむずい(gem化するとviewの場所がわからなくなる)
- 以前のプラグインとの互換性をどうするか
- プラグインの自動読み込みがむずい
- bundle installオプションとかむずい。管理画面にプログラマー向けっぽい項目が最初から出てる。
1. Lokkaのプラグインは管理画面を持つ事が多いのでRailsで言えばEngine的な性質を持つものが多いことになる。ここはSinatraアプリがRackアプリでもあるという性質を使って、Sinatraアプリ(恐らくそれを継承したLokka::Plugin)をプラグインということにしてuseする。
2. 従来のものも普通にregisterする。
bundlerではlokka-hello.gemをBundler.requireしてもlokka/hello.rbはrequireしてくれない。lokka-hello.rbをrequireする。
3. railsでもそういう名前のgemではlokka-hello.rbを用意してその中でrequireしてるので、
# lokka-hello.rb:
require 'lokka/hello'
register Lokka::Hello
みたいに書いてくださいという決まりにする。
4. どうしよう。Lokka本体をgem化する時に簡単になるように考える?
まとめ
要は
- Before Rails3 style gem -> Sinatra extension style gem
- Rails3 style gem -> Sinatra App Style gem
って感じでrailsのパクリで行こうと思います。