Ruby 2.0以降をサポート (1.9.3以前のサポートを停止)
mikutter 3.1からはRuby1.9のサポートを終了し、パフォーマンスやらインターフェイスやらの改善のためにRuby 2.0の新機能を積極的に使用します。Ruby 1.9.3 は既に来年の2月にはサポートを終了すると発表されているので、いいタイミングなんじゃないでしょうか。
リストをデータソースとして提供
listプラグインは、Twitterのリストをデータソースとして提供するようになります。それに伴って、listプラグインによるタブの提供を廃止します。リストの設定からは「表示」のチェックボックスが消えています。設定画面からは、リストの作成・削除・名前や説明の変更のみが行えます。
抽出タブの編集画面でデータソースを見てみると、各アカウントの「list」という要素に、リストが表示されています。データソースなので、他のリストやデータソースとミックスしたり、フィルタリングもできます。
データソースの一覧を階層化、折りたためるように
3.0リリース後から、抽出タブを使うプラグインが沢山でてきており、データソースの数が多くなりがちです。そこで上のスクリーンショットのように、データソースを階層表示して探しやすくしました。データソースを提供する時、名前を半角のスラッシュ(/)で区切ると、いい感じになります。例えば「@toshi_a/list/mikutter」という名前のデータソースは、@toshi_a の中の list の中に mikutter という項目が作成されます。上位の階層が存在しない場合は作成されます。プラグイン開発者は、アカウントごとに異なるデータソースを提供するなら、いい感じにカテゴライズされるように名前を付けましょう。
MessageConverterを削除、Entity書き換え機能追加
構造とAPIが複雑すぎて使用することが難しかった MessageConverterを削除します。これはツイートのリンク部分を一部書き換えるためのもので、具体的には短縮URLの展開に使われていました。しかし、これはTwitterにEntityが実装される前に設計されたもので、非同期的に書き換えることをサポートしないといった問題も抱えていました。詳しいことは別の記事にまとめるかもしれませんが、これからはイベント gui_timeline_add_messages で、実際に表示されたツイートを検出し、書き換えはいつでも Entity#add を呼び出して行うことができます。 Entity#add によってツイートが書き換えられると、適切にタイムラインも書き換えられます。
MessageConverterもEntity#addも内部的にはツイートのエンティティを書き換えているため、これはツイートの本文を書き換える機能としては使うことができません。よってこの影響を受けるのはせいぜいサードパーティの短縮URLプラグインくらいです。サードパーティの短縮URLサービスは、t.coの登場によってほぼ使われなくなっているので、今回は互換性のない変更ですが影響はないと考えて踏み切りました。
なお、標準のbit.lyプラグインはこの変更に追随しています。
リリース時期
このリリースは12/25にリリース予定の3.2のつなぎみたいなやつです。そう考えると、できるだけ早くリリースしてしまいたいですね。上記変更は全てdevelopブランチにマージされています。これから来週辺りにalpha1を出して、11月1日あたりにはなぁー、とか思ってます。