Diva::Model
Diva::Modelとは
mikutterで扱うあらゆるリソースの共通のインターフェイスとして Diva::Model
があります。 必要に応じて Diva::Model
のサブクラスとしてデータを扱うことで、共通のインターフェイスを得ることが出来、プラグイン同士が連携する手助けとなります。
Model Behavior
Modelには何種類か大まかな用途がありますが、それぞれの用途のためにスーパクラスやインターフェイスが分かれているわけではなく、Modelは自らの用途に合わせてメソッドやフィールドを実装し、それが明確にドキュメント上で決められたルールと互換性がある場合にダックタイピングによって、他のプラグインと関われるに過ぎません。
よって、以下にModelの種類を大まかに挙げますが、そういう名前のClassやModuleがあるわけではありません。あなたが実装するModelがMessageのように扱ってほしいのであればMessageに必要とされるメソッドを、Userのように扱ってほしいのであればUserに必要とされるメソッドを、MessageとUser両方の用途であれば、両方を実装してください。そうすれば、mikutterの他のすべてのプラグインが適切に扱ってくれます。
Basis
Diva::Modelに実装されているので、それを継承した全てのクラスがBasisであると云えます。 これらのメソッドはオーバライドして適切な値を返すようにしましょう。
Message
記事一般のためのインターフェイスです。 Twitterプラグインでは、ツイートを表すMessageクラスなどがあります。
User
Messageの投稿者を表すためのインターフェイスです。 TwitterプラグインではUserクラスがUser Modelに準拠していて、リプライの宛先やふぁぼったユーザなどにも転用されています。
Photo
画像一般を扱うインターフェイスです。ファイルシステム上やWeb上の画像を表します。 画像のメタ情報を扱い、実際の画像のダウンロードやキャッシュ機能なども期待されます。
mikutter標準プラグインではTwitterのツイートの添付画像や、UI上のタブやコマンドのアイコンを表すクラスがPhoto Modelに対応しています。