今回はちょっとざわわという変更を入れた。tDiary は 4.0.0 で Ruby 1.8 サポートをドロップして bundler 対応などを入れたことで gem を使う環境が整ったので、本体に bundle するような機能でもないものは gem に切り出すことにした。
その第一弾として標準スタイルではない、gfm, rd などは tdiary-style-gfm という名前の gem にして tdiary-core リポジトリから追い出してしまった。
これらのスタイルを使いたい時は tDiary を設置しているディレクトリで Gemfile.local というファイルに
gem 'tdiary-style-gfm'
と書いて bundle install を実行すればよい。また、今まで通りのファイルコピーでの動作も保証しているので tDiary 設置ディレクトリの tdiary/style/gfm.rb
としてコピーして、vendor ディレクトリ配下に依存 gem を展開しても動作する。ただし gfm は native extension 使ってるので bundler 使った方が楽。この方法で恩恵があるのは tdiary-style-rd とかかな。
こうすることで、スタイルファイル、具体的には gfm スタイルを tDiary のリリースとは切り離してバシバシ機能追加できるようになり、かつ本体パッケージのサイズを小さくすることでできた。
次は IO のバックエンドの一つの rdb アダプタであるとか、cache の memcached アダプタとかを分離するつもり。乞うご期待。