ext/rubypython_bridge/rubypython_bridge.c in rubypython-0.2.1 vs ext/rubypython_bridge/rubypython_bridge.c in rubypython-0.2.2

- old
+ new

@@ -3,10 +3,19 @@ VALUE mRubyPythonBridge; extern VALUE cRubyPyObject; extern VALUE cRubyPyModule; extern VALUE cRubyPyClass; + +/* +call-seq: func(modname,funcname,*args) +Given a python module name _modname_ and a function name _funcname_ calls the given function +with the supplied arguments. + +Use builtins as the module for a built in function. + +*/ static VALUE func_with_module(VALUE self, VALUE args) { int started_here=safe_start(); VALUE module,func,return_val; if(RARRAY(args)->len<2) return Qfalse; @@ -15,44 +24,24 @@ return_val=rp_call_func_with_module_name(module,func,args); safe_stop(started_here); return return_val; } -static VALUE rp_import_module(VALUE self,VALUE module) -{ - VALUE instance=rb_class_instance_new(1,&module,cRubyPyModule); - return instance; -} - - - /* * call-seq: import(modname) * -* imports a python file_module using the interpreter and returns a ruby wrapper - +* Imports the python module _modname_ using the interpreter and returns a ruby wrapper */ static VALUE rp_import(VALUE self,VALUE mname) { return rb_class_new_instance(1,&mname,cRubyPyModule); } -static VALUE rp_python_block(VALUE self) -{ - rb_funcall(self,rb_intern("start"),0); - rb_obj_instance_eval(0,NULL,self); - rb_funcall(self,rb_intern("stop"),0); - -} - - - /* * call-seq: start() * * Starts the python interpreter -* RubyPythonBridge.start */ VALUE rp_start(VALUE self) { @@ -62,10 +51,15 @@ } Py_Initialize(); return Qtrue; } +/* +* call-seq: stop() +* +* Stop the python interpreter +*/ VALUE rp_stop(VALUE self) { if(Py_IsInitialized()) { @@ -85,16 +79,16 @@ void Init_rubypython_bridge() { mRubyPythonBridge=rb_define_module("RubyPythonBridge"); rb_define_module_function(mRubyPythonBridge,"func",func_with_module,-2); - rb_define_module_function(mRubyPythonBridge,"import_module",rp_import_module,1); rb_define_module_function(mRubyPythonBridge,"start",rp_start,0); rb_define_module_function(mRubyPythonBridge,"stop",rp_stop,0); - rb_define_module_function(mRubyPythonBridge,"run",rp_python_block,0); rb_define_module_function(mRubyPythonBridge,"import",rp_import,1); Init_RubyPyObject(); Init_RubyPyModule(); Init_RubyPyClass(); Init_RubyPyFunction(); Init_RubyPyError(); + Init_RubyPyInstance(); + } \ No newline at end of file