Author: marvin
Date: Tue Mar 13 23:38:33 2012
New Revision: 1300413

URL: http://svn.apache.org/viewvc?rev=1300413&view=rev
Log:
Refactor CFC Ruby binding for scale.

We're going to bind a fair number of classes within Clownfish::CFC, so break
out initialization of those classes into separate functions.

Modified:
    incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c

Modified: incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c
URL: 
http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c?rev=1300413&r1=1300412&r2=1300413&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c (original)
+++ incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c Tue Mar 13 23:38:33 
2012
@@ -52,6 +52,15 @@ static VALUE S_CFC_Binding_Core_Write_Al
     return Qnil;
 }
 
+static void
+S_init_Binding_Core(void) {
+    cBindCore = rb_define_class_under(mBinding, "Core", rb_cObject);
+    rb_define_alloc_func(cBindCore, S_CFC_Binding_Core_Alloc);
+    rb_define_method(cBindCore, "initialize", S_CFC_Binding_Core_Init, 4);
+    rb_define_method(cBindCore, "write_all_modified",
+                     S_CFC_Binding_Core_Write_All_Modified, -1);
+}
+
 static VALUE S_CFC_Hierarchy_Alloc(VALUE klass) {
     void *ptr = NULL;
     return Data_Wrap_Struct(klass, NULL, NULL, ptr);
@@ -77,19 +86,19 @@ static VALUE S_CFC_Hierarchy_Build(VALUE
     return Qnil;
 }
 
-void Init_CFC() { 
-    mClownfish  = rb_define_module("Clownfish");
-    mCFC        = rb_define_module_under(mClownfish, "CFC");
-    mBinding    = rb_define_module_under(mCFC, "Binding");
-    cHierarchy  = rb_define_class_under(mCFC, "Hierarchy", rb_cObject);
-    cBindCore   = rb_define_class_under(mBinding, "Core", rb_cObject);
-
+static void
+S_init_Hierarchy(void) {
+    cHierarchy = rb_define_class_under(mCFC, "Hierarchy", rb_cObject);
     rb_define_alloc_func(cHierarchy, S_CFC_Hierarchy_Alloc);
     rb_define_method(cHierarchy, "initialize", S_CFC_Hierarchy_Init, 2);
     rb_define_method(cHierarchy, "build", S_CFC_Hierarchy_Build, 0);
+}
 
-    rb_define_alloc_func(cBindCore, S_CFC_Binding_Core_Alloc);
-    rb_define_method(cBindCore, "initialize", S_CFC_Binding_Core_Init, 4);
-    rb_define_method(cBindCore, "write_all_modified", 
S_CFC_Binding_Core_Write_All_Modified, -1);
+void Init_CFC() { 
+    mClownfish  = rb_define_module("Clownfish");
+    mCFC        = rb_define_module_under(mClownfish, "CFC");
+    mBinding    = rb_define_module_under(mCFC, "Binding");
+    S_init_Binding_Core();
+    S_init_Hierarchy();
 }
 


Reply via email to