Feature #3901
closedWIN32OLE_VARIANT.new method lacks consistency
Description
=begin
WIN32OLE_VARIANT.newの引数が配列かどうかで変換可否が変わります。
一貫性が無いので気になりました。
詳細:
WIN32OLE_VARIANT.new(Kernel)はTypeError: can not convert WIN32OLE_VARIANT from type Moduleとなります。
WIN32OLE_VARIANT.new([Kernel])は、KernelにIDispatchをラップしたWIN32OLEオブジェクトを生成します。
あるべき姿:
配列を指定した場合と同様、Rubyのオブジェクトでスカラ型に変換できないものはIDispatchのラッパーにするのが良いと思います。
ただし元々WIN32OLE_VARIANTが必要な事例が少ないので、修正する必要性については不明です。
=end
Updated by suke (Masaki Suketa) about 14 years ago
=begin
助田です。
On Sun, Oct 03, 2010 at 09:44:38PM +0900, Akio Tajima wrote:
WIN32OLE_VARIANT.new(Kernel)はTypeError: can not convert WIN32OLE_VARIANT from type Moduleとなります。
WIN32OLE_VARIANT.new([Kernel])は、KernelにIDispatchをラップしたWIN32OLEオブジェクトを生成します。あるべき姿:
配列を指定した場合と同様、Rubyのオブジェクトでスカラ型に変換できないものはIDispatchのラッパーにするのが良いと思います。
報告ありがとうございます。
統一することには同意です。
で、IDispatch のラッパーにした方が良い理由が何かありますか?
どちらかというと TypeError が、元々、私が意図した動作だったような気
がしています。
助田 雅紀
=end
Updated by arton (Akio Tajima) about 14 years ago
=begin
artonです。
で、IDispatch
のラッパーにした方が良い理由が何かありますか?
どちらかというと TypeError
が、元々、私が意図した動作だったような気
がしています。
意図はそうだと思いますが、IDispatchを与える(作る)方法と
してWIN32OLE_VARIANTはちょうど良い位置にあるからです。
もっとも、ユースケースは思いつかないのでどちらもTypeError
でも異論はないです。
Learn more about breast cancer - Pink Ribbon Campaign 2010
http://yj.pn/JAy9L7
=end
Updated by nahi (Hiroshi Nakamura) over 12 years ago
- Description updated (diff)
- Category set to ext
- Assignee set to suke (Masaki Suketa)
Updated by shyouhei (Shyouhei Urabe) over 12 years ago
- Status changed from Open to Assigned
Updated by mame (Yusuke Endoh) about 12 years ago
- Target version set to 2.6
Updated by suke (Masaki Suketa) about 10 years ago
- Status changed from Assigned to Closed
放置していてすみません。
2.2.0 では TypeErrorにすることにしました。