@@ -8,6 +8,7 @@ VALUE rb_dummy_with_block(VALUE self, VALUE arg);
88VALUE rb_dummy_hello(VALUE self, VALUE name);
99VALUE rb_dummy_round_num(VALUE self, VALUE num, VALUE ndigits);
1010VALUE rb_dummy_to_string(VALUE self, VALUE source);
11+ VALUE rb_dummy_max(VALUE self, VALUE a, VALUE b);
1112
1213VALUE rb_dummy_unit_kilobyte(VALUE self);
1314*/
@@ -71,6 +72,18 @@ func rb_dummy_unit_kilobyte(self C.VALUE) C.VALUE {
7172 return C .VALUE (ruby .INT2NUM (result ))
7273}
7374
75+ //export rb_dummy_max
76+ func rb_dummy_max (_ C.VALUE , a C.VALUE , b C.VALUE ) C.VALUE {
77+ aLong := ruby .NUM2LONG (ruby .VALUE (a ))
78+ bLong := ruby .NUM2LONG (ruby .VALUE (b ))
79+
80+ if aLong > bLong {
81+ return C .VALUE (ruby .LONG2NUM (aLong ))
82+ }
83+
84+ return C .VALUE (ruby .LONG2NUM (bLong ))
85+ }
86+
7487var rb_mDummy ruby.VALUE
7588
7689//export Init_dummy
@@ -81,6 +94,7 @@ func Init_dummy() {
8194 ruby .RbDefineSingletonMethod (rb_mDummy , "hello" , C .rb_dummy_hello , 1 )
8295 ruby .RbDefineSingletonMethod (rb_mDummy , "round_num" , C .rb_dummy_round_num , 2 )
8396 ruby .RbDefineSingletonMethod (rb_mDummy , "to_string" , C .rb_dummy_to_string , 1 )
97+ ruby .RbDefineModuleFunction (rb_mDummy , "max" , C .rb_dummy_max , 2 )
8498
8599 // Create Dummy::InnerClass class
86100 ruby .RbDefineClassUnder (rb_mDummy , "InnerClass" , ruby .VALUE (C .rb_cObject ))
0 commit comments