カスタムModelをタイムラインに表示するuserメソッドが返すModelは、ユーザの名前やアイコンを表示するために、幾つかのインターフェイスを要求します。その基準を満たしていない場合、タイムラインに表示することはできません。

このセクションでは、実際にカスタムModelをタイムラインに表示しているRSSプラグインを参考にして、その方法を解説します。

以下のコードは、RSSプラグインのSiteクラスです。

module Plugin::RSS
  class Site < Retriever::Model
    include Retriever::Model::UserMixin

    field.string :name, required: true
    field.string :description
    field.string :link
    field.time   :created
    field.string :profile_image_url
    field.string :feed_url

    def idname
      link
    end

    def perma_link
      link
    end

    def modified
      created
    end
  end
end

Retriever::Model::UserMixin

やはりいくつか要求されるメソッドがありますが、カスタムModelをタイムラインに表示すると同じように、モジュールをincludeするだけで大抵のインターフェイスが備わります。

こちらにincludeするのは、Retriever::Model::UserMixinです。

実装すべきメソッド

profile_image_url

アイコン画像のURLを文字列で返します。いまのところ、アイコンは省略することができません。

name

ユーザの名前です。

idname

ユーザのスクリーンネームです。ただし、スクリーンネームはTwitter独自の機能なので、nilを返すことができます。その場合、タイムライン上には名前のみが表示されるようになります。

参考