プロジェクト

全般

プロフィール

機能 #899

完了

ツイートする内容を新しいMessageインスタンスに格納し、その内容を投稿する仕組み

toshi_a 初音 さんが7年以上前に追加. 7年以上前に更新.

ステータス:
却下
優先度:
通常
担当者:
-
対象バージョン:
開始日:
2016-09-27
期日:
進捗率:

0%

プラグイン名:

説明

tweetはどんどん複雑になっていて、 #890 のような仕様変更・追加で投稿APIのインターフェイスがどんどん変わっていってる。
この変化を吸収し、クライアントサイドバリデーションの仕組みを共通化するために、Messageクラスに新しいtweetを作成する機能を追加する。

# いままで
Service.primary.post(
  message: "魔剤ンゴ!?",
  receiver: toshi_a,
  replyto: parent_message,
  mediaiolist: [...]
)
# 新しいの
Message.new(
  user: Service.primary.user_obj,
  body: "魔剤ンゴ!?",
  receivers: [User.findbyidname('toshi_a'), ...],
  replyto: parent_message,
  attachments: [...]
).compose

利点

学習コスト低減

ReadとWriteのインターフェイスがMessageに統一されることで、フィールドの名前を知ることでTweetからの値の読み出し・投稿の両方が出来るようになり、覚えることが減る。

投稿前に情報を取得することが容易になる

Messageには現在でも、ツイートに関する情報を集めるためのメソッドがたくさん用意されているが、これを投稿前に利用しながら、バリデーションなどのユーザへの情報の提供ができる。
具体的には、文字列のどの範囲がURLとして扱われるか、hidden header, hidden footerはどこからどこまでかといった情報が提供できると思う。

懸念

IDがない

IDはTwitterが決定するので、新しく作成したインスタンスにはIDがセットされない。Messageを扱う多くの処理が、IDがあることを前提にしているので、後方互換性を保ってこれを行うのは難しいかもしれない。


関連するチケット

関連している 環境対応 #891: postboxでの文字数カウント終了toshi_a 初音2016-09-20

操作
ブロック元 環境対応 #892: ツイート投稿時、auto_populate_reply_metadataパラメータを付けてpostする終了toshi_a 初音2016-09-20

操作
ブロック元 機能 #900: PhotoModel終了toshi_a 初音2016-09-27

操作

他の形式にエクスポート: Atom PDF