class ObjectSpace::InternalObjectWrapper

此类用作 ObjectSpace::reachable_objects_from 的返回值。

ObjectSpace::reachable_objects_from 返回包含对内部对象的引用的对象时,将返回此类的实例。

您可以使用 type 方法检查内部对象的类型。

公共实例方法

inspect() 点击切换源代码

参见 Object#inspect.

static VALUE
iow_inspect(VALUE self)
{
    VALUE obj = (VALUE)DATA_PTR(self);
    VALUE type = type2sym(BUILTIN_TYPE(obj));

    return rb_sprintf("#<InternalObject:%p %"PRIsVALUE">", (void *)obj, rb_sym2str(type));
}
internal_object_id() 点击切换源代码

返回内部对象的 Object#object_id

static VALUE
iow_internal_object_id(VALUE self)
{
    VALUE obj = (VALUE)DATA_PTR(self);
    return rb_obj_id(obj);
}
type() 点击切换源代码

返回内部对象的类型。

static VALUE
iow_type(VALUE self)
{
    VALUE obj = (VALUE)DATA_PTR(self);
    return type2sym(BUILTIN_TYPE(obj));
}