From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 0193320133 for ; Wed, 1 Mar 2017 02:55:41 +0000 (UTC) From: Eric Wong To: raindrops-public@bogomips.org Subject: [PATCH] ext: fix documentation for C ext-defined classes Date: Wed, 1 Mar 2017 02:55:41 +0000 Message-Id: <20170301025541.26183-1-e@80x24.org> List-Id: 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; /* -- EW