ext/ccsv.c in ccsv-0.0.2 vs ext/ccsv.c in ccsv-0.1
- old
+ new
@@ -1,6 +1,5 @@
-
#include "ccsv.h"
static VALUE rb_cC;
static VALUE foreach(VALUE self, VALUE filename) {
@@ -9,23 +8,35 @@
if (file == NULL)
rb_raise(rb_eRuntimeError, "File not found");
char line[MAX_LENGTH];
char *token;
- VALUE ary = rb_ary_new();
int idx;
+
+ VALUE ary;
while (fgets(line, sizeof(line), file) != NULL) {
+ ary = rb_ary_new();
token = strtok(line, DELIMITERS);
idx = 0;
while (token != NULL) {
rb_ary_store(ary, idx, rb_str_new(token, strlen(token)));
idx ++;
token = strtok(NULL, DELIMITERS);
}
+
+ /* OBJ_FREEZE(ary); */
rb_yield(ary);
+ /* FL_UNSET((ary), FL_FREEZE); */
+
+ /* for(idx = 0; idx < RARRAY_LEN(ary); idx ++) {
+ rb_ary_store(ary, idx, Qnil);
+ } */
+
}
+
+ fclose(file);
return Qnil;
}
void