Sha256: 5fcabad6dd8cd8555dc34fe095b1dce75c56ccd50de03a89300f0d5679161989
Contents?: true
Size: 1.88 KB
Versions: 3
Compression:
Stored size: 1.88 KB
Contents
#include "rubypython_bridge.h" VALUE mRubyPythonBridge; RUBY_EXTERN VALUE cRubyPyObject; RUBY_EXTERN VALUE cRubyPyModule; RUBY_EXTERN VALUE cRubyPyClass; RUBY_EXTERN VALUE cBlankObject; /* 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_LEN(args)<2) return Qfalse; module=rb_ary_shift(args); func=rb_ary_shift(args); return_val=rp_call_func_with_module_name(module,func,args); safe_stop(started_here); return return_val; } /* * call-seq: import(modname) * * 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); } /* * call-seq: start() * * Starts the python interpreter */ VALUE rp_start(VALUE self) { if(Py_IsInitialized()) { return Qfalse; } Py_Initialize(); return Qtrue; } /* * call-seq: stop() * * Stop the python interpreter */ VALUE rp_stop(VALUE self) { if(Py_IsInitialized()) { Py_Finalize(); return Qtrue; } return Qfalse; } /* * Module containing an interface to the the python interpreter. * * Use RubyPython instead. */ void Init_rubypython_bridge() { mRubyPythonBridge=rb_define_module("RubyPythonBridge"); rb_define_module_function(mRubyPythonBridge,"func",func_with_module,-2); rb_define_module_function(mRubyPythonBridge,"start",rp_start,0); rb_define_module_function(mRubyPythonBridge,"stop",rp_stop,0); rb_define_module_function(mRubyPythonBridge,"import",rp_import,1); Init_BlankObject(); Init_RubyPyObject(); Init_RubyPyModule(); Init_RubyPyClass(); Init_RubyPyFunction(); Init_RubyPyError(); Init_RubyPyInstance(); }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubypython-0.2.8 | ext/rubypython_bridge/rubypython_bridge.c |
rubypython-0.2.7 | ext/rubypython_bridge/rubypython_bridge.c |
rubypython-0.2.6 | ext/rubypython_bridge/rubypython_bridge.c |