Это то, что я пытаюсь сделать: def call_block(in_class = "String", &block)
instance = eval("#{in_class}.new")
puts "instance class: #{instance.class}"
instance.instance_eval{ block.call
class Foo
def with_yield
yield(self)
end
def with_instance_eval(&block)
instance_eval(&block)
end
end
f = Foo.new
f.with_yield do |arg|
p self
# => main
Я работаю через Pickaxe 1.9, и меня немного смущает постоянный поиск в блоках instance/class_eval. Я использую 1.9.2. кажется, что рубин обрабатывает постоянный поиск-в * _eval блоков так же, как это