@@ -12,6 +12,7 @@ VALUE rb_dummy_tests_rb_funcall3(VALUE self, VALUE num, VALUE ndigits);
1212void rb_dummy_tests_rb_alias(VALUE self, VALUE dst, VALUE src);
1313VALUE rb_dummy_tests_rb_class2name(VALUE self);
1414void rb_dummy_tests_rb_attr(VALUE self, VALUE needReader, VALUE needWriter, VALUE honourVisibility);
15+ VALUE rb_dummy_tests_rb_const_get(VALUE self, VALUE name);
1516*/
1617import "C"
1718
@@ -100,6 +101,13 @@ func rb_dummy_tests_rb_attr(klass C.VALUE, needReader C.VALUE, needWriter C.VALU
100101 ruby .RbAttr (ruby .VALUE (klass ), ruby .RbIntern ("ivar2" ), intNeedReader != 0 , intNeedWriter != 0 , intHonourVisibility != 0 )
101102}
102103
104+ //export rb_dummy_tests_rb_const_get
105+ func rb_dummy_tests_rb_const_get (klass C.VALUE , name C.VALUE ) C.VALUE {
106+ constName := ruby .Value2String (ruby .VALUE (name ))
107+ constID := ruby .RbIntern (constName )
108+ return C .VALUE (ruby .RbConstGet (ruby .VALUE (klass ), constID ))
109+ }
110+
103111// defineMethodsToDummyTests define methods in Dummy::Tests
104112func defineMethodsToDummyTests (rb_mDummy ruby.VALUE ) {
105113 rb_cTests := ruby .RbDefineClassUnder (rb_mDummy , "Tests" , ruby .VALUE (C .rb_cObject ))
@@ -114,4 +122,5 @@ func defineMethodsToDummyTests(rb_mDummy ruby.VALUE) {
114122 ruby .RbDefineSingletonMethod (rb_cTests , "rb_alias" , C .rb_dummy_tests_rb_alias , 2 )
115123 ruby .RbDefineSingletonMethod (rb_cTests , "rb_class2name" , C .rb_dummy_tests_rb_class2name , 0 )
116124 ruby .RbDefineSingletonMethod (rb_cTests , "rb_attr" , C .rb_dummy_tests_rb_attr , 3 )
125+ ruby .RbDefineSingletonMethod (rb_cTests , "rb_const_get" , C .rb_dummy_tests_rb_const_get , 1 )
117126}
0 commit comments