From: Basile STARYNKEVITCH Date: 2003-09-01T07:26:22+09:00 Subject: embedding ruby - some questions Dear All I am trying to embed Ruby inside an application, a GTK widget server which recieves ruby instructions to manage a Graphical User Interface - see http://starynkevitch.net/Basile/guisdoc.html for more; I just coded a Python based GTK widget server and want to port it to Ruby, which should be easy, since my code was designed to plug into several different scripting engines (provided they can load a script file and interpret a C string). I have some scoping problems; it seems that definition of functions parsed by rb_load_file are not visible later when evaluating a C string using rb_eval_string_protect? so I am running rb_load_file on a file (guisdemo_rubyscript in my code) which contains def start(welcomsg) $stderr.printf("start %s\n", welcomsg) #etc end and then I fo rb_eval_string_protect of a string like the following 2 lines #request1 start("foobar") and the start function is unknown You can download my sample code (which uses ruby-gnome2-all-0.6.0 and ruby 1.8 [1]) under http://starynkevitch.net/Basile/guis-1.2.post1.tgz then add . to your $PATH, do a make; make a symbolic link fro ruguis to ruguis-scripter in your path and run ./guisdemo_rubyscript -T -D -p ./guisdemo_client Also, I would like ruby to avoid catching SIGINT; Can I do a simple signal(SIGINT,SIG_DFL) or should I be more careful? (when sent a SIGINT my app crashs inside Ruby). At last, I would like to be able to set the "source file name" (actually to a string like 'request#123') explicitly before calling rb_eval_string but tb_eval_string does a rb_source_filename already Note 1: even if ruby-gnome2-all-0.6.0 is not really for ruby-1.8 I believe this is not my problem, since it appears without calling any ruby-gnome2 (actually ruby-gtk2) primitives -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basilestarynkevitchnet aliases: basiletunesorg = bstarynknerimnet 8, rue de la Fa�encerie, 92340 Bourg La Reine, France