Ruby で組み込みクラスのメソッドを上書きする
Tomohiro wrote this on Apr 10, 2011「Rubyは君を信頼する。Rubyは君を分別のあるプログラマとして扱う。Rubyはメタプログラミングのような強力な力を与える。ただし、大いなる力には、大いなる責任が伴うことを忘れてはいけない」 - まつもとゆきひろ
Ruby では下記のように,例え組み込みクラスでもメソッドを別名にしたり,オーバライドしたりと,モンキーパッチングが自由に出来る. ただし悪用は厳禁.
class << Time
alias_method :now_original, :now
def now
puts 'override'
end
end
puts Time.now
puts Time.now_original
References
メタプログラミングRuby
posted with amazlet at 11.04.10
Paolo Perrotta
アスキー・メディアワークス
売り上げランキング: 29046
アスキー・メディアワークス
売り上げランキング: 29046