From: Tietew Date: 2020-02-24T21:57:38+09:00 Subject: [ruby-list:50876] Re: パス名なのかIO(っぽい)オブジェクトなのかを検出する方法 ありがとうございます。 On Fri, 21 Feb 2020 21:08:57 +0900 Tadashi Saito wrote: > 「パス名」は文字列のはずなので、respond_to?(:to_str)とか:to_sで > 場合分けするのはどうでしょうか? > 少なくともIO, StringIOにはないメソッドのようでした。 がしかし、 ・Pathname#to_s ... ある ・Pathname#to_str ... ない ・IO#to_s ... ない ・StringIO#to_s ... ある(←!) $ ruby -rstringio -ve 'p StringIO.new.to_s' ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux] "#" :( > 別のやり方として、「IOっぽい」という判定にrespond_to?(:pos)を追加するのもありかもしれません。 > ただこちらは、あまり調べていません。 そうなるのかなあ? -- Tietew Blog: http://www.tietew.jp/ PGP: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA