Twitter#update_with_mediaとopen-uriの話

ネットワーク上のコンテンツをopen-uri(OpenURI)でopenした場合、そのサイズによってTempfileかStringIOでオブジェクトが作られます。さらに、そのオブジェクトはOpenURI::Metaで拡張され、content_typeに応答できる状態になります。

さて、なぜそのような前置きをしたかというと、content_typeに応答可能なオブジェクトをTwitter#update_with_mediaの第二引数に渡すと、original_filenameメソッドに応答できなくて例外になる、という状況に遭遇したからです。特に不具合というわけでなく、仕様なのだと思います。