3 VALUE
so_instance_of(VALUE self
, VALUE obj
, VALUE klass
) {
4 return rb_obj_is_instance_of(obj
, klass
);
7 VALUE
so_kind_of(VALUE self
, VALUE obj
, VALUE klass
) {
8 return rb_obj_is_kind_of(obj
, klass
);
11 VALUE
so_respond_to(VALUE self
, VALUE obj
, VALUE sym
) {
12 return (VALUE
)rb_respond_to(obj
, SYM2ID(sym
));
15 VALUE
so_to_id(VALUE self
, VALUE obj
) {
16 return ID2SYM(rb_to_id(obj
));
19 VALUE
so_require(VALUE self
) {
20 rb_require("fixtures/foo");
24 VALUE
so_attr_get(VALUE self
, VALUE obj
, VALUE attr
) {
25 return rb_attr_get(obj
, SYM2ID(attr
));
28 VALUE
so_check_array_type(VALUE self
, VALUE ary
) {
29 return rb_check_array_type(ary
);
32 VALUE
so_check_string_type(VALUE self
, VALUE str
) {
33 return rb_check_string_type(str
);
36 VALUE
so_check_convert_type(VALUE self
, VALUE obj
) {
37 return rb_check_convert_type(obj
, T_ARRAY
, "Array", "to_ary");
40 VALUE
so_convert_type(VALUE self
, VALUE obj
) {
41 return rb_convert_type(obj
, T_ARRAY
, "Array", "to_ary");
44 VALUE
so_rbobjclassname(VALUE self
, VALUE obj
) {
45 return rb_str_new2( rb_obj_classname(obj
) );
48 VALUE
so_rbclassof(VALUE self
, VALUE obj
) {
49 return rb_class_of(obj
);
52 VALUE
so_inspect(VALUE self
, VALUE obj
) {
53 return rb_inspect(obj
);
56 VALUE
so_is_type_nil(VALUE self
, VALUE obj
) {
57 if(TYPE(obj
) == T_NIL
) {
63 VALUE
so_is_type_object(VALUE self
, VALUE obj
) {
64 if(TYPE(obj
) == T_OBJECT
) {
70 VALUE
so_is_type_array(VALUE self
, VALUE obj
) {
71 if(TYPE(obj
) == T_ARRAY
) {
77 VALUE
so_is_type_module(VALUE self
, VALUE obj
) {
78 if(TYPE(obj
) == T_MODULE
) {
84 VALUE
so_is_type_class(VALUE self
, VALUE obj
) {
85 if(TYPE(obj
) == T_CLASS
) {
91 void Init_subtend_object() {
93 cls
= rb_define_class("SubtendObject", rb_cObject
);
94 rb_define_method(cls
, "rb_obj_is_instance_of", so_instance_of
, 2);
95 rb_define_method(cls
, "rb_obj_is_kind_of", so_kind_of
, 2);
96 rb_define_method(cls
, "rb_respond_to", so_respond_to
, 2);
97 rb_define_method(cls
, "rb_to_id", so_to_id
, 1);
98 rb_define_method(cls
, "rb_require", so_require
, 0);
99 rb_define_method(cls
, "rb_attr_get", so_attr_get
, 2);
100 rb_define_method(cls
, "rb_check_array_type", so_check_array_type
, 1);
101 rb_define_method(cls
, "rb_check_string_type", so_check_string_type
, 1);
102 rb_define_method(cls
, "rb_check_convert_type", so_check_convert_type
, 1);
103 rb_define_method(cls
, "rb_convert_type", so_convert_type
, 1);
104 rb_define_method(cls
, "rb_inspect", so_inspect
, 1);
105 rb_define_method(cls
, "rb_obj_classname", so_rbobjclassname
, 1);
106 rb_define_method(cls
, "rb_class_of", so_rbclassof
, 1);
107 rb_define_method(cls
, "rb_is_type_nil", so_is_type_nil
, 1);
108 rb_define_method(cls
, "rb_is_type_object", so_is_type_object
, 1);
109 rb_define_method(cls
, "rb_is_type_array", so_is_type_array
, 1);
110 rb_define_method(cls
, "rb_is_type_module", so_is_type_module
, 1);
111 rb_define_method(cls
, "rb_is_type_class", so_is_type_class
, 1);