optional input strings - can be NULL, need special conversions

%typemap(in) const char *inStrOrNull {

$1 = ($input == Qnil) ? NULL : STR2CSTR($input);

}

returning char* or NULL, need special conversions

%typemap(out) char *{

$result = ($1 == NULL) ? Qnil : rb_str_new2($1);

}