Code

fixed rrd_featch and added rrd_info to ruby bindings
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 16 Jul 2007 06:34:04 +0000 (06:34 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 16 Jul 2007 06:34:04 +0000 (06:34 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2@1153 a5681a0c-68f1-0310-ab6d-d61299d08faa

program/bindings/ruby/main.c

index 94f17e19adaa10af6449c6c51e060978444b3c93..f568aa76fbc806b064bbe0ecd7bc9e7697e8b45c 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <unistd.h>
 #include <ruby.h>
-#include <rrd.h>
+#include "../../src/rrd_tool.h"
 
 typedef struct string_arr_t {
     int len;
@@ -133,7 +133,7 @@ VALUE rb_rrd_fetch(VALUE self, VALUE args)
     rb_ary_store(result, 0, INT2FIX(start));
     rb_ary_store(result, 1, INT2FIX(end));
     rb_ary_store(result, 2, names);
-    rb_ary_store(result, 2, data);
+    rb_ary_store(result, 3, data);
     return result;
 }
 
@@ -166,11 +166,10 @@ VALUE rb_rrd_graph(VALUE self, VALUE args)
     return result;
 }
 
-/*
 VALUE rb_rrd_info(VALUE self, VALUE args)
 {
     string_arr a;
-    info_t *p;
+    info_t *p, *data;
     VALUE result;
 
     a = string_arr_new(args);
@@ -184,19 +183,19 @@ VALUE rb_rrd_info(VALUE self, VALUE args)
         VALUE key = rb_str_new2(data->key);
         switch (data->type) {
         case RD_I_VAL:
-            if (isnan(data->u_val)) {
+            if (isnan(data->value.u_val)) {
                 rb_hash_aset(result, key, Qnil);
             }
             else {
-                rb_hash_aset(result, key, rb_float_new(data->u_val));
+                rb_hash_aset(result, key, rb_float_new(data->value.u_val));
             }
             break;
         case RD_I_CNT:
-            rb_hash_aset(result, key, INT2FIX(data->u_cnt));
+            rb_hash_aset(result, key, INT2FIX(data->value.u_cnt));
             break;
         case RD_I_STR:
-            rb_hash_aset(result, key, rb_str_new2(data->u_str));
-            free(data->u_str);
+            rb_hash_aset(result, key, rb_str_new2(data->value.u_str));
+            free(data->value.u_str);
             break;
         }
         p = data;
@@ -205,7 +204,6 @@ VALUE rb_rrd_info(VALUE self, VALUE args)
     }
     return result;
 }
-*/
 
 VALUE rb_rrd_last(VALUE self, VALUE args)
 {
@@ -256,4 +254,5 @@ void Init_RRD()
     rb_define_module_function(mRRD, "restore", rb_rrd_restore, -2);
     rb_define_module_function(mRRD, "tune", rb_rrd_tune, -2);
     rb_define_module_function(mRRD, "update", rb_rrd_update, -2);
+    rb_define_module_function(mRRD, "info", rb_rrd_info, -2);
 }