Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Object | remove_instance_variable

概要

Object#remove_instance_variable(name) -> object

詳細

オブジェクトからインスタンス変数 name を削除。
そのインスタンス変数に設定されていた値を返却。

サンプルコード
require 'tbpgr_utils'

class Person
  attr_reader :name, :age
  def initialize(name, age)
    @name, @age = name, age
  end
end
tanaka = Person.new('tanaka', 34)

bulk_puts_eval binding, <<-EOS
tanaka.instance_variables.grep /name/
tanaka.remove_instance_variable('@name')
tanaka.instance_variables.grep /name/
EOS

__END__
下記はTbpgrUtils gemの機能
bulk_puts_eval

https://rubygems.org/gems/tbpgr_utils
https://github.com/tbpgr/tbpgr_utils

出力

tanaka.instance_variables.grep /name/    # => [:@name]
tanaka.remove_instance_variable('@name') # => "tanaka"
tanaka.instance_variables.grep /name/    # => []