Module: PyCall::Conversion
- Defined in:
- ext/pycall/pycall.c
Class Method Summary collapse
- .from_ruby(obj) ⇒ Object
- .register_python_type_mapping(pytypeptr, rbcls) ⇒ Object
- .to_ruby(pyptr) ⇒ Object
- .unregister_python_type_mapping(pytypeptr) ⇒ Object
Class Method Details
.from_ruby(obj) ⇒ Object
1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 |
# File 'ext/pycall/pycall.c', line 1583
static VALUE
pycall_conv_m_from_ruby(VALUE mod, VALUE obj)
{
PyObject *pyobj = pycall_pyobject_from_ruby(obj);
if (PyType_Check(pyobj) || PyClass_Check(pyobj))
return pycall_pytypeptr_new(pyobj);
if (PyRuby_Check(pyobj))
return pycall_pyrubyptr_new(pyobj);
return pycall_pyptr_new(pyobj);
}
|
.register_python_type_mapping(pytypeptr, rbcls) ⇒ Object
1571 1572 1573 1574 1575 |
# File 'ext/pycall/pycall.c', line 1571
static VALUE
pycall_conv_m_register_python_type_mapping(VALUE mod, VALUE pytypeptr, VALUE rbcls)
{
return pycall_python_type_mapping_register(pytypeptr, rbcls) ? Qtrue : Qfalse;
}
|
.to_ruby(pyptr) ⇒ Object
1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 |
# File 'ext/pycall/pycall.c', line 1594
static VALUE
pycall_conv_m_to_ruby(VALUE mod, VALUE pyptr)
{
VALUE obj, obj_pyptr;
PyObject *pyobj = check_get_pyobj_ptr(pyptr, NULL);
obj = obj_pyptr = pycall_pyobject_to_ruby(pyobj);
if (is_pyobject_wrapper(obj)) {
obj_pyptr = pycall_pyobject_wrapper_get_pyptr(obj);
}
if (is_pycall_pyptr(obj_pyptr) && obj_pyptr != pyptr && DATA_PTR(obj_pyptr) == pyobj) {
Py_API(Py_IncRef)(pyobj);
}
return obj;
}
|
.unregister_python_type_mapping(pytypeptr) ⇒ Object
1577 1578 1579 1580 1581 |
# File 'ext/pycall/pycall.c', line 1577
static VALUE
pycall_conv_m_unregister_python_type_mapping(VALUE mod, VALUE pytypeptr)
{
return pycall_python_type_mapping_unregister(pytypeptr) ? Qtrue : Qfalse;
}
|