You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by lo...@apache.org on 2012/01/08 00:09:16 UTC
[lucy-commits] svn commit: r1228757 -
/incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c
Author: logie
Date: Sat Jan 7 23:09:16 2012
New Revision: 1228757
URL: http://svn.apache.org/viewvc?rev=1228757&view=rev
Log:
LUCY-202
1. Added Clownfish::CFC::Binding module.
2. Added Clownfish::CFC::Binding::Core class.
3. Created new and write_all_modified methods for the Core class.
Ruby Implementation Examples:
cf = Clownfish::CFC::Hierarchy.new("./cfsource","./cfdest")
cf.build
b = Clownfish::CFC::Binding::Core.new(cf,"./cfdest","","")
b.write_all_modified
b.write_all_modified(true)
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=1228757&r1=1228756&r2=1228757&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c (original)
+++ incubator/lucy/trunk/clownfish/ruby/ext/Clownfish/CFC.c Sat Jan 7 23:09:16 2012
@@ -17,10 +17,43 @@
#include "ruby.h"
#include "CFC.h"
+static VALUE mBinding;
static VALUE mClownfish;
static VALUE mCFC;
+static VALUE cBindCore;
static VALUE cHierarchy;
+static VALUE cfc_binding_core_alloc(VALUE klass) {
+ CFCBindCore *self = CFCBindCore_allocate();
+
+ VALUE self_rb = Data_Wrap_Struct(klass, 0, CFCBindCore_destroy, self);
+
+ return self_rb;
+}
+
+static VALUE cfc_binding_core_init(VALUE self_rb, VALUE hierarchy, VALUE dest, VALUE header, VALUE footer) {
+ CFCHierarchy* hierarchy_obj;
+ CFCBindCore *self;
+
+ Data_Get_Struct(hierarchy,CFCHierarchy,hierarchy_obj);
+ Data_Get_Struct(self_rb, CFCBindCore, self);
+
+ CFCBindCore_init(self, hierarchy_obj, StringValuePtr(dest), StringValuePtr(header), StringValuePtr(footer));
+
+ return self_rb;
+}
+
+static VALUE cfc_binding_core_write_all_modified(int argc, VALUE *argv, VALUE self_rb) {
+ CFCBindCore *self;
+
+ int modified = argc > 0 && RTEST(argv[0]) ? 1 : 0;
+
+ Data_Get_Struct(self_rb, CFCBindCore, self);
+ CFCBindCore_write_all_modified(self,modified);
+
+ return Qnil;
+}
+
static VALUE cfc_hierarchy_alloc(VALUE klass) {
CFCHierarchy *self = CFCHierarchy_allocate();
@@ -53,11 +86,16 @@ static VALUE cfc_hierarchy_build(VALUE s
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);
rb_define_alloc_func(cHierarchy, cfc_hierarchy_alloc);
-
rb_define_method(cHierarchy, "initialize", cfc_hierarchy_init, 2);
rb_define_method(cHierarchy, "build", cfc_hierarchy_build, 0);
+
+ rb_define_alloc_func(cBindCore, cfc_binding_core_alloc);
+ rb_define_method(cBindCore, "initialize", cfc_binding_core_init, 4);
+ rb_define_method(cBindCore, "write_all_modified", cfc_binding_core_write_all_modified, -1);
}