メタプログラミング Ruby 2日目 間違い箇所?
久しぶりのエントリ.
最近はRubyの魔術書「メタプログラミングRuby」をじっくりと楽しんでます.
プログラミング言語の本にしては平易に書かれていてとても読みやすい文章ですよ!
- 作者: Paolo Perrotta,角征典
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/08/28
- メディア: 大型本
- 購入: 18人 クリック: 533回
- この商品を含むブログ (112件) を見る
一通りじっくり読み終わったので、
実際にコードを書いていたところ、2日目のブランクスレートのところでwarning発生.
バージョンは
ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-darwin9.8.0]
で試しています.
methods/computer/blank.rb
class Computer instance_methods.each do |m| undef_method m unless m.to_s =~ /^__|method_missing|respond_to?/ end ....
warning: undefining `object_id' may cause serious problems
なんて記事*1があるので、
1.9.2では出てくるwarningなんでしょうね*2.
とりあえず下のようにobject_idもundef_methodの対象外としてwarningを回避しておきました.
正規表現部分が長いのでmatcherを切り出した方が良さげ.
class Computer instance_methods.each do |m| undef_method m unless m.to_s =~ /^__|object_id|method_missing|respond_to?/ end