[Ruby] (no subject)
Kirill Shutemov
kirya85 at mail.ru
Tue Mar 4 21:51:50 MSK 2003
On Tue, 4 Mar 2003 09:53:56 +0800
Sergei Dolmatov <sergei at dolmatov.dsb.ru> wrote:
> On Mon, Mar 03, 2003 at 10:11:47PM +0300, Кирилл Шутемов wrote:
> > On Mon, 3 Mar 2003 17:41:37 +0800
> > Sergei Dolmatov <sergei at dolmatov.dsb.ru> wrote:
> >
> > > On Sun, Mar 02, 2003 at 11:18:25AM +0200, Kirill Shutemov wrote:
> > > > Привет всем,
> > > >
> > > > Мне нужен внутрений скриптовый язык для моего проекта. Нужно, чтобы из скриптов можно
> > > > было вызывать некоторые функции основной программы(написанной на C++). Очень хотелось бы
> > > > чтобы этим языком был Ruby. Как это можно реализовать?
> > >
> > > Насчет С++ не знаю, а, скажем, С реализуется достаточно просто - смотреть
> > > внимательнее на Extending and embedding Rubby в Pragmatic Programmers
> > > Guide.
> >
> > Я вставил в место, где должен выполняться скрипт следующий текст:
> > ruby_init();
> > ruby_script("embedded");
> > rb_load_file("test.rb");
> > ruby_run();
> > скрипт test.rb правильно отрабатывает, но после этого программа сразу завершается. Как c этим бороться?
>
> Обсуждение этого было в ruby-talk@, к сожалению, просмотрел этот тред
> довольно поверхностно, поэтому за точность не ручаюсь. Но насколько я
> понял - это нормальное поведение ruby_run(), и предлагалось использовать
> rb_eval().
void goScript(string name)
{
ifstream file((char*)name.c_str());
string buf, str;
if(!file)
cout << Cannot open script file \"" << name << "\".";
ruby_init();
while(!file.eof())
{
getline(file,buf);
str.append(buf+'\n');
}
rb_eval_string(str.c_str());
}
Что-то вроде этого?
More information about the Ruby
mailing list