Ruby
初心者
メタプログラミング

Ruby のオープンクラスとは (メタプログラミングRuby)

Rubyでは定義済みのクラスでも、何度でも開いて、中身をいじることが出来る。
これをオープンクラスという。

クラスを定義

クラスメソッドを1個作る。

class A
  def some_method
    p :some_method
  end
end

また定義

メソッドをもう1個作る。

class A
  def new_method
    p :new_method
  end
end

すると‥

どちらのメソッドも呼べるようになる

A.new.some_method # :some_method
A.new.new_method # :new_method

なんでもアリ

Integer クラスなど、元から存在するクラスでもオープンして書き換えられる。

class Integer
  def some_method
    p :some_method
  end
end

1.some_method # :some_method
2.some_method # :some_method

参考

  • メタプログラミングRuby