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
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。