@@ -18,6 +18,10 @@ void rb_dummy_tests_rb_const_set(VALUE self, VALUE name, VALUE val);
1818VALUE rb_dummy_tests_rb_const_defined(VALUE self, VALUE name);
1919VALUE rb_dummy_tests_rb_const_defined_at(VALUE self, VALUE name);
2020VALUE rb_dummy_tests_rb_eval_string(VALUE self, VALUE str);
21+ VALUE rb_dummy_tests_rb_eval_string_protect(VALUE self, VALUE str);
22+ VALUE rb_dummy_tests_rb_ary_new(VALUE self);
23+ VALUE rb_dummy_tests_rb_ary_new_capa(VALUE self, VALUE capa);
24+ VALUE rb_dummy_tests_rb_ary_push(VALUE self, VALUE ary, VALUE elem);
2125*/
2226import "C"
2327
@@ -163,6 +167,41 @@ func rb_dummy_tests_rb_eval_string(_ C.VALUE, str C.VALUE) C.VALUE {
163167 return C .VALUE (ret )
164168}
165169
170+ //export rb_dummy_tests_rb_eval_string_protect
171+ func rb_dummy_tests_rb_eval_string_protect (_ C.VALUE , str C.VALUE ) C.VALUE {
172+ goStr := ruby .Value2String (ruby .VALUE (str ))
173+
174+ var state ruby.Int
175+ ret := ruby .RbEvalStringProtect (goStr , & state )
176+
177+ slice := []ruby.VALUE {ret , ruby .INT2NUM (state )}
178+ ary := ruby .Slice2rbAry (slice )
179+
180+ return C .VALUE (ary )
181+ }
182+
183+ //export rb_dummy_tests_rb_ary_new
184+ func rb_dummy_tests_rb_ary_new (_ C.VALUE ) C.VALUE {
185+ ret := ruby .RbAryNew ()
186+
187+ return C .VALUE (ret )
188+ }
189+
190+ //export rb_dummy_tests_rb_ary_new_capa
191+ func rb_dummy_tests_rb_ary_new_capa (_ C.VALUE , capa C.VALUE ) C.VALUE {
192+ longCapa := ruby .NUM2LONG (ruby .VALUE (capa ))
193+ ret := ruby .RbAryNewCapa (int64 (longCapa ))
194+
195+ return C .VALUE (ret )
196+ }
197+
198+ //export rb_dummy_tests_rb_ary_push
199+ func rb_dummy_tests_rb_ary_push (_ C.VALUE , ary C.VALUE , elem C.VALUE ) C.VALUE {
200+ ret := ruby .RbAryPush (ruby .VALUE (ary ), ruby .VALUE (elem ))
201+
202+ return C .VALUE (ret )
203+ }
204+
166205// defineMethodsToDummyTests define methods in Dummy::Tests
167206func defineMethodsToDummyTests (rb_mDummy ruby.VALUE ) {
168207 rb_cTests := ruby .RbDefineClassUnder (rb_mDummy , "Tests" , ruby .VALUE (C .rb_cObject ))
@@ -183,4 +222,8 @@ func defineMethodsToDummyTests(rb_mDummy ruby.VALUE) {
183222 ruby .RbDefineSingletonMethod (rb_cTests , "rb_const_defined" , C .rb_dummy_tests_rb_const_defined , 1 )
184223 ruby .RbDefineSingletonMethod (rb_cTests , "rb_const_defined_at" , C .rb_dummy_tests_rb_const_defined_at , 1 )
185224 ruby .RbDefineSingletonMethod (rb_cTests , "rb_eval_string" , C .rb_dummy_tests_rb_eval_string , 1 )
225+ ruby .RbDefineSingletonMethod (rb_cTests , "rb_eval_string_protect" , C .rb_dummy_tests_rb_eval_string_protect , 1 )
226+ ruby .RbDefineSingletonMethod (rb_cTests , "rb_ary_new" , C .rb_dummy_tests_rb_ary_new , 0 )
227+ ruby .RbDefineSingletonMethod (rb_cTests , "rb_ary_new_capa" , C .rb_dummy_tests_rb_ary_new_capa , 1 )
228+ ruby .RbDefineSingletonMethod (rb_cTests , "rb_ary_push" , C .rb_dummy_tests_rb_ary_push , 2 )
186229}
0 commit comments