static VALUE fenix_coerce_to_path(VALUE obj) { VALUE tmp; ID to_path; rb_encoding *enc; int level = rb_safe_level(); if (insecure_obj_p(obj, level)) { rb_insecure_operation(); } CONST_ID(to_path, "to_path"); tmp = rb_check_funcall(obj, to_path, 0, 0); if (tmp == Qundef) tmp = obj; StringValue(tmp); tmp = file_path_convert(tmp); if (obj != tmp && insecure_obj_p(tmp, level)) { rb_insecure_operation(); } enc = rb_enc_get(tmp); if (!rb_enc_asciicompat(enc)) { tmp = rb_str_inspect(tmp); rb_raise(rb_eEncCompatError, "path name must be ASCII-compatible (%s): %s", rb_enc_name(enc), RSTRING_PTR(tmp)); } return rb_str_new4(tmp); }
void rb_invalid_str(const char *str, const char *type) { VALUE s = rb_str_inspect(rb_str_new2(str)); rb_raise(rb_eArgError, "invalid value for %s: %s", type, RSTRING_PTR(s)); }
static VALUE rsym_inspect(VALUE sym, SEL sel) { VALUE str = rb_str_new2(":"); if (sym_should_be_escaped(sym)) { rb_str_concat(str, rb_str_inspect(RSYM(sym)->str)); } else { rb_str_concat(str, RSYM(sym)->str); } return str; }
VALUE string_spec_rb_str_inspect(VALUE self, VALUE str) { return rb_str_inspect(str); }
/* * Returns the same as calling +inspect+ on the string representation of * #to_str */ static VALUE location_inspect_m(VALUE self) { return rb_str_inspect(location_to_str(location_ptr(self))); }