LINUX.ORG.RU

ruby: аналог Include


0

0
Нужна некая команда, которая будет инлайнить содержимое указанного файла в нужное место в программе, "не вникая" в это содержимое.

load и require "вникают", и такая строчка валится с ошибками. просто copy-paste работает без проблем.


Объясни, что ты хочешь сделать. Что ты понимаешь под "инлайнить содержимаего файла в нужное место в программе"?
smh ★★★
()
Ответ на: комментарий от Liosha_Syrnikov
Да-да eval. С контекстом все норм - проэвалиться в контексте вызова. Если нужен какой-то определенный контекст, то тут есть 2 способа:
1) через второй параметр eval: eval "smth code to eval" smth_obj.send(:binding)
2) Через module_eval - это в контексте модуля/класса.
dizza ★★★★★
()
Ответ на: комментарий от tx
> Копи-паст файла в то место где в программе стоит эта самая команда. типа #include в Си.

А в чем практический смысл?
smh ★★★
()
Ответ на: комментарий от dizza
> Да-да eval.

Он в код пытается вставить не Руби код, как я понимаю... Поэтому eval тоже не поможет ему.
smh ★★★
()
Ответ на: комментарий от smh
> Он в код пытается вставить не Руби код, как я понимаю...

Неправильно понимаешь. Руби-код.

tx
() автор топика
Ответ на: комментарий от dizza
> Да-да eval.

Thx. eval(IO.read("myfile.rb"), binding)

tx
() автор топика
тебе это не нужно.

>load и require "вникают", и такая строчка валится с ошибками.


значит ты делаешь что-то, что выходит за пределы здравого смысла. а если ты попытаешься выкинуть такой фокус в проекте, над которым работают еще и другие люди - есть неиллюзорный такой шанс остатся с разбитой головой.
volh ★★
()
Ответ на: комментарий от Pi
Скорее херачим в этот файл произвольные команды, которые должен выполнять уже работающий руби-скрипт.
LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.