From: Timothy Byrd Date: 2005-09-24T10:26:40+09:00 Subject: Re: to_str in string.c # rb_str_to_str() > Use rb_String(num) or rb_big2str(num, 10). I would like to get the string representation of an arbitrary Ruby object. (The Bignum was just a specific example.) Thanks for the pointer to rb_String(). It isn't mentioned in my README.EXT, which says, on the contrary: *** To get char* from a VALUE, version 1.7 recommend to use new macros StringValue() and StringValuePtr(). StringValue(var) replaces var's value to the result of "var.to_str()". StringValuePtr(var) does same replacement and returns char* representation of var. These macros will skip the replacement if var is a String. Notice that the macros requires to take only lvalue as their argument, to change the value of var in the replacement. *** I read that as saying that StringValue() and StringValuePtr() (and thus StringValueCStr()) should work on any type of object. I wouldn't have guessed they only worked on string-type objects. Thanks, -- Timothy