[ekg2-commit] r3770 - trunk/plugins/ruby: trunk/plugins/ruby/ruby_ekg.c trunk/plugins/ruby/ruby_theme.c

SVN commit svn w toxygen.net
Pon, 11 Lut 2008, 21:15:55 CET


Author: darkjames
Date: 2008-02-11 21:15:54 +0100 (Mon, 11 Feb 2008)
New Revision: 3770

Modified:
   trunk/plugins/ruby/ruby_ekg.c
   trunk/plugins/ruby/ruby_theme.c
Log:
sync code.


Modified: trunk/plugins/ruby/ruby_ekg.c
===================================================================
--- trunk/plugins/ruby/ruby_ekg.c	2008-02-11 18:39:17 UTC (rev 3769)
+++ trunk/plugins/ruby/ruby_ekg.c	2008-02-11 20:15:54 UTC (rev 3770)
@@ -202,7 +202,7 @@
 	return Qnil;
 }
 
-extern void ruby_define_theme_methods(VALUE module);	/* ruby_theme.c */
+extern void ruby_define_theme_class(VALUE module);	/* ruby_theme.c */
 
 static int ruby_initialize() {
 	static int once = 0;
@@ -234,7 +234,7 @@
 
 	rb_define_const(ekg2_ruby_script, "WATCH_READ", INT2FIX(WATCH_READ));
 
-	ruby_define_theme_methods(ekg2_ruby_script);
+	ruby_define_theme_class(ekg2_ruby_module);
 	return 0;
 }
 

Modified: trunk/plugins/ruby/ruby_theme.c
===================================================================
--- trunk/plugins/ruby/ruby_theme.c	2008-02-11 18:39:17 UTC (rev 3769)
+++ trunk/plugins/ruby/ruby_theme.c	2008-02-11 20:15:54 UTC (rev 3770)
@@ -79,26 +79,48 @@
 	return Qnil;
 }
 
+static VALUE ekg2_ruby_theme;
+
 static VALUE ruby_format_add(int argc, VALUE *argv, VALUE self) {
 	int replace = 1;
+	char *name;
 
 	if (argc != 2 && argc != 3) rb_raise(rb_eArgError, "format_add() accepts 2 or 3 params, but %d given", argc);
 
 	Check_Type(argv[0], T_STRING);
 	Check_Type(argv[1], T_STRING);
 
+	name = RSTRING(argv[0])->ptr;
+
 	if (argc == 3) {
 		Check_Type(argv[2], T_FIXNUM);
 		replace = FIX2INT(argv[2]);
 	}
 	
-	format_add(RSTRING(argv[0])->ptr, RSTRING(argv[1])->ptr, replace);
+	format_add(name, RSTRING(argv[1])->ptr, replace);
 
-	return Qnil;
+	rb_iv_set(self, "@name", rb_str_new2(name));
+
+	return ekg2_ruby_theme;
 }
 
-void ruby_define_theme_methods(VALUE module) {
+static VALUE ruby_format_find(int argc, VALUE *argv, VALUE self) {
+	if (argc != 1) rb_raise(rb_eArgError, "format_find() accepts 1 param, but %d given", argc);
+
+	Check_Type(argv[0], T_STRING);
+	return rb_str_new2(format_find(RSTRING(argv[0])->ptr));
+//	return ekg2_ruby_theme;
+}
+
+void ruby_define_theme_class(VALUE module) {
+	ekg2_ruby_theme = rb_define_class_under(module, "Format", rb_cObject);
+
+	rb_define_method(ekg2_ruby_theme, "initialize", ruby_format_add, -1);			/* format_add() */
+	rb_define_singleton_method(ekg2_ruby_theme, "find", ruby_format_find, -1);		/* format_find() */
+
 	rb_define_method(module, "format_add", ruby_format_add, -1);
+	rb_define_method(module, "format_find", ruby_format_find, -1);
+
 	rb_define_method(module, "print", ruby_print, -1);
 	rb_define_method(module, "print_window", ruby_print_window, -1);
 }



Więcej informacji o liście dyskusyjnej ekg2-commit