Skip to content

Commit 562d89e

Browse files
committed
Add rb_dummy_unit_kilobyte
1 parent 092f422 commit 562d89e

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

testdata/dummy/ext/dummy/dummy.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package main
66
VALUE rb_dummy_sum(VALUE self, VALUE a, VALUE b);
77
VALUE rb_dummy_with_block(VALUE self, VALUE arg);
88
VALUE rb_dummy_hello(VALUE self, VALUE name);
9+
VALUE rb_dummy_unit_kilobyte(VALUE self);
910
*/
1011
import "C"
1112

@@ -40,6 +41,17 @@ func rb_dummy_hello(_ C.VALUE, name C.VALUE) C.VALUE {
4041
return C.VALUE(ruby.String2Value(result))
4142
}
4243

44+
//export rb_dummy_unit_kilobyte
45+
func rb_dummy_unit_kilobyte(self C.VALUE) C.VALUE {
46+
sourceID := ruby.RbIntern("@source")
47+
sourceValue := ruby.RbIvarGet(ruby.VALUE(self), sourceID)
48+
49+
sourceLong := ruby.RbNum2long(sourceValue)
50+
result := sourceLong * 1024
51+
52+
return C.VALUE(ruby.RbLong2numInline(result))
53+
}
54+
4355
var rb_mDummy ruby.VALUE
4456

4557
//export Init_dummy
@@ -57,6 +69,10 @@ func Init_dummy() {
5769

5870
// Create OuterClass class
5971
ruby.RbDefineClass("OuterClass", ruby.VALUE(C.rb_cObject))
72+
73+
// Dummy::Unit
74+
rb_cUnit := ruby.RbDefineClassUnder(rb_mDummy, "Unit", ruby.VALUE(C.rb_cObject))
75+
ruby.RbDefineMethod(rb_cUnit, "kilobyte", C.rb_dummy_unit_kilobyte, 0)
6076
}
6177

6278
func main() {

0 commit comments

Comments
 (0)