From a442f2300df950ba410134787168af271c7abfb1 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 1 Mar 2017 02:34:24 +0000 Subject: ext: fix documentation for C ext-defined classes Defining the "Raindrops" class explicitly helps RDoc find subclasses for documentation, and ought to reduce the binary size slightly due to the removal of rb_intern calls. Furthermore, use "Socket" to ensure the base class for Raindrops::InetDiagSocket is documented properly in RDoc. --- ext/raindrops/linux_inet_diag.c | 7 ++++--- ext/raindrops/linux_tcp_info.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ext/raindrops/linux_inet_diag.c b/ext/raindrops/linux_inet_diag.c index 5276a28..8ad436b 100644 --- a/ext/raindrops/linux_inet_diag.c +++ b/ext/raindrops/linux_inet_diag.c @@ -709,11 +709,12 @@ static VALUE tcp_listener_stats(int argc, VALUE *argv, VALUE self) void Init_raindrops_linux_inet_diag(void) { - VALUE cRaindrops = rb_const_get(rb_cObject, rb_intern("Raindrops")); + VALUE cRaindrops = rb_define_class("Raindrops", rb_cObject); VALUE mLinux = rb_define_module_under(cRaindrops, "Linux"); + VALUE Socket; rb_require("socket"); - cIDSock = rb_const_get(rb_cObject, rb_intern("Socket")); + Socket = rb_const_get(rb_cObject, rb_intern("Socket")); id_new = rb_intern("new"); /* @@ -722,7 +723,7 @@ void Init_raindrops_linux_inet_diag(void) * This is a subclass of +Socket+ specifically for talking * to the inet_diag facility of Netlink. */ - cIDSock = rb_define_class_under(cRaindrops, "InetDiagSocket", cIDSock); + cIDSock = rb_define_class_under(cRaindrops, "InetDiagSocket", Socket); rb_define_singleton_method(cIDSock, "new", ids_s_new, 0); cListenStats = rb_const_get(cRaindrops, rb_intern("ListenStats")); diff --git a/ext/raindrops/linux_tcp_info.c b/ext/raindrops/linux_tcp_info.c index 8a06f88..eebca94 100644 --- a/ext/raindrops/linux_tcp_info.c +++ b/ext/raindrops/linux_tcp_info.c @@ -77,7 +77,7 @@ static VALUE init(VALUE self, VALUE io) void Init_raindrops_linux_tcp_info(void) { - VALUE cRaindrops = rb_const_get(rb_cObject, rb_intern("Raindrops")); + VALUE cRaindrops = rb_define_class("Raindrops", rb_cObject); VALUE cTCP_Info; /* -- cgit v1.2.3-24-ge0c7