バグ #1225
完了userメソッドを持たないMessageモデルを使うとmikutterがクラッシュする
説明
https://dev.mikutter.hachune.net/issues/1205 にて、
全てのMessage ModelにUserに相当するものが存在するとも限らない
ということでしたが、実際にそういったものを作ると、再現手順に書いたように落ちます。これは引用前提のプラグインですが、恐らく通常通りタイムラインに載せても Gdk::MiraclePainter#header_left_markup で同じことが起こるのではないかと思います。
topic/1219-quoted-tweet へのpatchを添付します。これで一旦問題なくなると思います。
ファイル
再現手順
https://github.com/cobodo/mikutter-twitter-card
をインストールし、
alias_method :user, :meta
の行をコメントアウトすると、以下のトレースを吐いてクラッシュする。( /home/cobodo/repos/worldon/mikutter は{MIKUTTER_DIR}で読み替えてください)
Traceback (most recent call last):
24: from ./mikutter.rb:104:in `<main>'
23: from ./mikutter.rb:68:in `boot!'
22: from /home/cobodo/repos/worldon/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop'
21: from /home/cobodo/repos/worldon/mikutter/core/plugin/gtk/mainloop.rb:10:in `main'
20: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_cell_renderer_message.rb:128:in `uri='
19: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_cell_renderer_message.rb:145:in `render_message'
18: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
17: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_coordinate_module.rb:48:in `height'
16: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
15: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:34:in `subparts_height'
14: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `_subparts_height'
13: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `inject'
12: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `each'
11: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_helper.rb:41:in `block in _subparts_height'
10: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `height'
9: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `inject'
8: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `each'
7: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:215:in `block in height'
6: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
5: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:258:in `message_height'
4: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
3: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:282:in `header_left'
2: from /home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_quote.rb:86:in `header_left_content'
1: from /home/cobodo/repos/worldon/mikutter/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
/home/cobodo/repos/worldon/mikutter/core/mui/cairo_sub_parts_message_base.rb:43:in `header_left_content': undefined method `user' for #<Plugin::TwitterCard::TwitterCard:0x00007ffff6e774c8> (NoMethodError)
関連するチケット
toshi_a 初音 さんが6年以上前に更新
- ステータス を パッチ適用待ち から レビュー待ち に変更
- 担当者 を cob odo にセット
- ブランチ を topic/1225-userless-messaeg にセット
pushしました。一応確認してみてください。