@@ -6,6 +6,9 @@ package main
66VALUE rb_dummy_sum(VALUE self, VALUE a, VALUE b); 
77VALUE rb_dummy_with_block(VALUE self, VALUE arg); 
88VALUE rb_dummy_hello(VALUE self, VALUE name); 
9+ VALUE rb_dummy_round_num(VALUE self, VALUE num, VALUE ndigits); 
10+ VALUE rb_dummy_to_string(VALUE self, VALUE source); 
11+ 
912VALUE rb_dummy_unit_kilobyte(VALUE self); 
1013*/ 
1114import  "C" 
@@ -41,6 +44,22 @@ func rb_dummy_hello(_ C.VALUE, name C.VALUE) C.VALUE {
4144	return  C .VALUE (ruby .String2Value (result ))
4245}
4346
47+ //export rb_dummy_round_num 
48+ func  rb_dummy_round_num (_  C.VALUE , num  C.VALUE , ndigits  C.VALUE ) C.VALUE  {
49+ 	// Call Integer#round 
50+ 	result  :=  ruby .RbFuncall2 (ruby .VALUE (num ), ruby .RbIntern ("round" ), 1 , []ruby.VALUE {ruby .VALUE (ndigits )})
51+ 
52+ 	return  C .VALUE (result )
53+ }
54+ 
55+ //export rb_dummy_to_string 
56+ func  rb_dummy_to_string (_  C.VALUE , source  C.VALUE ) C.VALUE  {
57+ 	// Call Object#to_s 
58+ 	result  :=  ruby .RbFuncall2 (ruby .VALUE (source ), ruby .RbIntern ("to_s" ), 0 , []ruby.VALUE {})
59+ 
60+ 	return  C .VALUE (result )
61+ }
62+ 
4463//export rb_dummy_unit_kilobyte 
4564func  rb_dummy_unit_kilobyte (self  C.VALUE ) C.VALUE  {
4665	sourceID  :=  ruby .RbIntern ("@source" )
@@ -60,6 +79,8 @@ func Init_dummy() {
6079	ruby .RbDefineSingletonMethod (rb_mDummy , "sum" , C .rb_dummy_sum , 2 )
6180	ruby .RbDefineSingletonMethod (rb_mDummy , "with_block" , C .rb_dummy_with_block , 1 )
6281	ruby .RbDefineSingletonMethod (rb_mDummy , "hello" , C .rb_dummy_hello , 1 )
82+ 	ruby .RbDefineSingletonMethod (rb_mDummy , "round_num" , C .rb_dummy_round_num , 2 )
83+ 	ruby .RbDefineSingletonMethod (rb_mDummy , "to_string" , C .rb_dummy_to_string , 1 )
6384
6485	// Create Dummy::InnerClass class 
6586	ruby .RbDefineClassUnder (rb_mDummy , "InnerClass" , ruby .VALUE (C .rb_cObject ))
0 commit comments