/* method: inspect() -- returns the inspect of the array */ static VALUE na_inspect(VALUE self) { VALUE str; struct NARRAY *ary; int i; char buf[256]; const char *classname; const char *ref = "%s(ref).%s(%i"; const char *org = "%s.%s(%i"; GetNArray(self,ary); classname = rb_class2name(CLASS_OF(self)); str = rb_str_new(0,0); if (ary->rank < 1) { sprintf(buf, "%s.%s(): []", classname, na_typestring[ary->type]); rb_str_cat(str,buf,strlen(buf)); } else { sprintf(buf, (ary->ref==Qnil) ? org:ref, classname, na_typestring[ary->type], ary->shape[0]); rb_str_cat(str,buf,strlen(buf)); for (i=1; i<ary->rank; ++i) { sprintf(buf,",%i",ary->shape[i]); rb_str_cat(str,buf,strlen(buf)); } rb_str_cat(str,")",1); rb_str_cat(str,": \n",3); rb_str_concat(str, na_make_inspect(self)); } return str; }