From: oetiker Date: Mon, 16 Jul 2007 06:34:04 +0000 (+0000) Subject: fixed rrd_featch and added rrd_info to ruby bindings X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=7fa6b5bc8389f2f80359d08f4f7382f9b782b819;p=rrdtool.git fixed rrd_featch and added rrd_info to ruby bindings git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2/program@1153 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/bindings/ruby/main.c b/bindings/ruby/main.c index 94f17e1..f568aa7 100644 --- a/bindings/ruby/main.c +++ b/bindings/ruby/main.c @@ -4,7 +4,7 @@ #include #include -#include +#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); }