>>27410
> Если нам пришел код в виде строки, то можно ли как-то сделать его блоком и запихать в этот instance_eval?
Так-то instance_eval принимает строку тоже. Еще мне пришли в голову две вещи:
1) Сделать процедуру из строки (чтоб отложить выкидывание исключения до исполнения процедуры) каким-нибудь таким образом:
block = &eval("proc {#{str}}")
instance_eval &block
2) Если у тебя там MRI руби, то поэксперементирвать с этим:
RubyVM::InstructionSequence.compile(str).eval
>Но, к сожалению, не всегда одно можно так просто заменить на другое.
А что за задача? Вообще, я очень редко пользовался eval, единственное место, где я его нашел у нас, так это в самодельном обфускаторе для руби.