インスタンスを拡張するクラス

クラスじゃなくてインスタンスを拡張。

class Foo
  def initialize(obj)
    @obj = obj
  end

  def hello
    puts "hello"
  end

  def method_missing(name, *args, &block)
    @obj.__send__(name, *args, &block)
  end
end

a = [1, 2, 3]
foo = Foo.new(a)

foo << 4
foo << 5
puts foo.collect{|i| i * 2}.join(",")
foo.hello