[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby 1.9 - equivalent of ruby_run() ?

Suraj Kurapati

3/3/2008 12:32:00 AM

Hello,

In Ruby 1.8, I was able to start the Ruby interpreter using ruby_run():

char* file = "foobar.rb";
ruby_script(file);
rb_load_file(file);
ruby_run(); // start the interpreter

In Ruby 1.9, there is a ruby_run_node() function instead, but I have not
been able to use it successfully. I tried:

char* file = "foobar.rb";
ruby_script(file);
rb_load_file(file);
ruby_run_node(NULL); // start the interpreter

And I also tried:

char* file = "foobar.rb";
ruby_script(file);
rb_load_file(file);
ruby_run_node(ruby_options(0, NULL)); // start the interpreter

And I also tried:

char* argv[] = {"foobar.rb"};
ruby_run_node(ruby_options(1, argv)); // start the interpreter

None of these worked; the interpreter would immediately dump core.

What is the correct way to do this?

Thanks for your consideration.
--
Posted via http://www.ruby-....

1 Answer

Suraj Kurapati

3/3/2008 5:27:00 AM

0

Suraj Kurapati wrote:
> In Ruby 1.9, there is a ruby_run_node() function instead, but I have not
> been able to use it successfully. I tried:
>
> char* file = "foobar.rb";
> ruby_script(file);
> rb_load_file(file);
> ruby_run_node(NULL); // start the interpreter

I hunted around in the Ruby 1.9.0 source code and found an example in
load.c. The solution is to pass the return value of rb_load_file() to
ruby_run_node():

char* file = "foobar.rb";
ruby_script(file);
void* node = rb_load_file(file);
ruby_run_node(node); // start the interpreter
--
Posted via http://www.ruby-....