Arrayを継承したクラスの表示

Arrayだけハミ子なのねしらんかったしらんかった。というか汚い。

irb(main):001:0> module PTest
irb(main):002:1>  def to_s; "to_s" end
irb(main):003:1>  def inspect; "inspect" end
irb(main):004:1> end
=> nil
irb(main):005:0> class A ; include PTest end
=> A
irb(main):006:0> class B < Array; include PTest end
=> B

irb(main):007:0> p A.new
inspect
=> inspect
irb(main):008:0> p B.new
inspect
=> inspect

irb(main):009:0> puts A.new
to_s
=> nil
irb(main):010:0> puts B.new
=> nil

実際、1.9.3(2.1系でもいいんだけどif抜けて最適化されてるので判りにくい)のコードを見ると

VALUE
rb_io_puts(int argc, VALUE *argv, VALUE out)
{
    int i;
    VALUE line;

     :
     :
    for (i=0; i<argc; i++) {
    if (TYPE(argv[i]) == T_STRING) {
        line = argv[i];
        goto string;
    }
    line = rb_check_array_type(argv[i]);
    if (!NIL_P(line)) {
        rb_exec_recursive(io_puts_ary, line, out);
        continue;
    }
     :
     :
}

あー

いや何をしようとしてたかっていうと、連分数クラスをArray継承で作ってて、連分数表示をputsで出そうとしたらはまったという、、、
https://gist.github.com/tkuro11/5c96e0a94d822bf2f806
p つかうか、Arrayから継承あきらめるか。配列的に 連分数係数を指定できるのでいいと思ったんだけどなー