Ruby でゴーストメソッド

Ruby でゴーストメソッドを書いてみた。

class X
    def initialize value
        @value = value
    end

    def method_missing name, *args
        @value.send name, *args
    end
end

n = X.new 42
p n + 3
p n - 4

ary = X.new [1, 2, 3]
p ary.include? 2

ゴーストメソッドとは『存在しないメソッドを存在するかのように振る舞うメソッド』のことをさす。
Ruby では method_missing を使用して定義する事ができる。
Rubyメタプログラミングでは割とポピュラーな技法になる。