instance_eval
Object#instance_evalは、レシーバのコンテキストでevalを行います。インスタンス変数にもアクセスできるので注意が必要です。
以下のプログラムは、Object#instance_variablesと合わせて「全インスタンス変数にnilを代入する」という処理をしています。
class Rubyco def initialize(name, age) @name, @age = name, age end end a = Rubyco.new("Alice", 23) p a a.instance_variables.each do |v| a.instance_eval "#{v} = nil" end p a
実行結果です。
#<Rubyco:0x298ed08 @age=23, @name="Alice"> #<Rubyco:0x298ed08 @age=nil, @name=nil>