@@ -11,6 +11,7 @@ VALUE rb_dummy_to_string(VALUE self, VALUE source);
1111VALUE rb_dummy_max(VALUE self, VALUE a, VALUE b); 
1212
1313VALUE rb_dummy_unit_kilobyte(VALUE self); 
14+ VALUE rb_dummy_unit_increment(VALUE self); 
1415*/ 
1516import  "C" 
1617
@@ -72,6 +73,20 @@ func rb_dummy_unit_kilobyte(self C.VALUE) C.VALUE {
7273	return  C .VALUE (ruby .INT2NUM (result ))
7374}
7475
76+ //export rb_dummy_unit_increment 
77+ func  rb_dummy_unit_increment (self  C.VALUE ) C.VALUE  {
78+ 	sourceID  :=  ruby .RbIntern ("@source" )
79+ 	sourceValue  :=  ruby .RbIvarGet (ruby .VALUE (self ), sourceID )
80+ 
81+ 	sourceInt  :=  ruby .NUM2INT (sourceValue )
82+ 	sourceInt ++ 
83+ 
84+ 	result  :=  ruby .INT2NUM (sourceInt )
85+ 	ruby .RbIvarSet (ruby .VALUE (self ), sourceID , result )
86+ 
87+ 	return  C .VALUE (result )
88+ }
89+ 
7590//export rb_dummy_max 
7691func  rb_dummy_max (_  C.VALUE , a  C.VALUE , b  C.VALUE ) C.VALUE  {
7792	aLong  :=  ruby .NUM2LONG (ruby .VALUE (a ))
@@ -108,6 +123,7 @@ func Init_dummy() {
108123	// Dummy::Unit 
109124	rb_cUnit  :=  ruby .RbDefineClassUnder (rb_mDummy , "Unit" , ruby .VALUE (C .rb_cObject ))
110125	ruby .RbDefineMethod (rb_cUnit , "kilobyte" , C .rb_dummy_unit_kilobyte , 0 )
126+ 	ruby .RbDefineMethod (rb_cUnit , "increment" , C .rb_dummy_unit_increment , 0 )
111127}
112128
113129func  main () {
0 commit comments