Change soft-fail to use the config, rather than env
[rbx.git] / spec / subtend / ext / subtend_object.c
blob44d6061e12e95a813f8420e1575cb18255e04526
1 #include <ruby.h>
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");
21 return Qnil;
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) {
58 return Qtrue;
60 return Qfalse;
63 VALUE so_is_type_object(VALUE self, VALUE obj) {
64 if(TYPE(obj) == T_OBJECT) {
65 return Qtrue;
67 return Qfalse;
70 VALUE so_is_type_array(VALUE self, VALUE obj) {
71 if(TYPE(obj) == T_ARRAY) {
72 return Qtrue;
74 return Qfalse;
77 VALUE so_is_type_module(VALUE self, VALUE obj) {
78 if(TYPE(obj) == T_MODULE) {
79 return Qtrue;
81 return Qfalse;
84 VALUE so_is_type_class(VALUE self, VALUE obj) {
85 if(TYPE(obj) == T_CLASS) {
86 return Qtrue;
88 return Qfalse;
91 void Init_subtend_object() {
92 VALUE cls;
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);