[ruby-trunk - Bug #6502][Assigned] include Syslog

Issue #6502 has been reported by mame (Yusuke E.).


Bug #6502: include Syslog

Author: mame (Yusuke E.)
Status: Assigned
Priority: Low
Assignee: knu (Akinori MUSHA)
Category:
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-05-26 trunk 35811) [i686-linux]

knu さん

http://d.hatena.ne.jp/nagachika/20120521#r35737

で指摘されていますが、Syslog#inspect が rb_define_module_function なのは意図的でしょうか。
rb_define_singleton_method の方が適切なように思います。

具体的には、以下のように include したクラスが inspect できません。

$ ruby -rsyslog -e ‘class A; include Syslog; end; p A.new’
-e:1:in inspect': wrong argument type A (expected Module) (TypeError) from -e:1:in p’
from -e:1:in `’

r35737 前はこのコードで SEGV していたようなので、改善されたのは確かです。


Yusuke E. [email protected]

Issue #6502 has been updated by knu (Akinori MUSHA).

Target version changed from 2.0.0 to 2.1.0

これ、Syslogをクラスからモジュールに変えた大昔のコードですね。
もはやSyslogは継承できないのでそれが正しそうです。2.1.0までに直します。

Bug #6502: include Syslog

Author: mame (Yusuke E.)
Status: Assigned
Priority: Low
Assignee: knu (Akinori MUSHA)
Category:
Target version: 2.1.0
ruby -v: ruby 2.0.0dev (2012-05-26 trunk 35811) [i686-linux]

knu さん

http://d.hatena.ne.jp/nagachika/20120521#r35737

で指摘されていますが、Syslog#inspect が rb_define_module_function なのは意図的でしょうか。
rb_define_singleton_method の方が適切なように思います。

具体的には、以下のように include したクラスが inspect できません。

$ ruby -rsyslog -e ‘class A; include Syslog; end; p A.new’
-e:1:in inspect': wrong argument type A (expected Module) (TypeError) from -e:1:in p’
from -e:1:in `’

r35737 前はこのコードで SEGV していたようなので、改善されたのは確かです。


Yusuke E. [email protected]