Method: RubyPython.Type
- Defined in:
- lib/rubypython/type.rb
.Type(name) ⇒ Object
Creates a Ruby class that inherits from a proxied Python object.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rubypython/type.rb', line 3 def self.Type(name) mod, match, klass = name.rpartition(".") pymod = RubyPython.import(mod) pyclass = pymod.pObject.getAttr(klass) rclass = Class.new(RubyPyProxy) do define_method(:initialize) do |*args| args = PyObject.convert(*args) pTuple = PyObject.buildArgTuple(*args) pReturn = pyclass.callObject(pTuple) if PythonError.error? raise PythonError.handle_error end @pObject = pReturn end end return rclass end |