метод instance_eval меняет self в своем блоке, например:
class D; end
d = D.new
d.instance_eval do
puts self # print something like #<D:0x8a6d9f4>, not 'main'!
end
Если мы определяем метод сам (или любые другие методы (кроме instance_eval), который принимает блок), при печати self мы будемget 'main', который отличается от instance_eval method.eg:
[1].each do |e|
puts self # print 'main'
end
Как я могу определить метод (который принимает блок), например instance_eval?Заранее спасибо.