From: Ueno Katsuhiro Date: 2000-06-16T22:12:59+09:00 Subject: [ruby-list:23284] Ruby/zlib うえの@ぶるーすかいです。 .gz なファイルを読み書きするクラスを C で書き直しました。 http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.1.0.tar.gz Ruby/zlib を書いている時にいくつか気になった点があるので列挙します。 1. eval.c 内の rb_respond_to の定義なんですが、 これだと int ではなくて VALUE では? int rb_respond_to(obj, id) ..snip.. { if (rb_method_boundp(CLASS_OF(obj), id, 0)) { return Qtrue; } return Qfalse; } 2. io.c 内の rb_io_puts や rb_io_print 等が static に なっていますけど、static でなければ klass = rb_define_class("Hoge", rb_cObject); rb_define_method(klass, "write", hoge_write); rb_define_method(klass, "<<", rb_io_addstr); rb_define_method(klass, "printf", rb_io_printf); rb_define_method(klass, "puts", rb_io_puts); rb_define_method(klass, "print", rb_io_print); と手抜きができて幸せかも。 # モジュール化して頂けるともっと幸せかも? 3. IO#rewind と IO#lineno について。 f = open("hoge") p f.lineno # => 0 f.gets f.gets p f.lineno # => 2 f.rewind p f.lineno # => 2 ?????? -=====--===- うえの かつひろ @ BLUE-SKYNET --= ---=----===- http://www.blue.sky.or.jp/ -==