Skip to content

Commit a06b7d0

Browse files
committed
Impl rb_dummy_tests_rb_const_get
1 parent c4fd09e commit a06b7d0

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

testdata/dummy/ext/dummy/tests.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ VALUE rb_dummy_tests_rb_funcall3(VALUE self, VALUE num, VALUE ndigits);
1212
void rb_dummy_tests_rb_alias(VALUE self, VALUE dst, VALUE src);
1313
VALUE rb_dummy_tests_rb_class2name(VALUE self);
1414
void 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
*/
1617
import "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
104112
func 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

Comments
 (0)