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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.