This module is used to extend somes classes and give then a common API.
Most of methods defined here must be overriden.
static VALUE
conv_from_native(VALUE self, VALUE value, VALUE ctx)
{
return value;
}
Get native type. @overload native_type(type)
@param [String, Symbol, Type] type @return [Type] Get native type from +type+.
@overload native_type
@raise {NotImplementedError} This method must be overriden.
static VALUE
conv_native_type(int argc, VALUE* argv, VALUE self)
{
if (argc == 0) {
if (!rb_ivar_defined(self, id_native_type_ivar)) {
rb_raise(rb_eNotImpError, "native_type method not overridden and no native_type set");
}
return rb_ivar_get(self, id_native_type_ivar);
} else if (argc == 1) {
VALUE type = rbffi_Type_Find(argv[0]);
rb_ivar_set(self, id_native_type_ivar, type);
return type;
} else {
rb_raise(rb_eArgError, "incorrect arguments");
}
}
Generated with the Darkfish Rdoc Generator 2.