🔬

[Ruby] あるインスタンスのブロック内で、そのインスタンスのメソッドやインスタンス変数を使う方法

2021/03/08に公開

instance_eval を使って実現

Ruby 3.0.0

Code

class Klass 
  def initialize &block 
    @instance_variable 
    instance_eval(&block) unless block.nil? 
  end 
  def instance_method 
    p @instance_variable 
  end 
end 

Using

klass_instance = Klass.new do 
  @instance_variable = :hoge 
  instance_method 
end 

Result

:hoge 

Reference

Discussion