Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
String#rstrip!
(*::String::selector) -> self?
rstrip!(*selectors) → self or nil
string.c
View on GitHub ↗
static VALUE
rb_str_rstrip_bang(int argc, VALUE *argv, VALUE str)
{
rb_encoding *enc;
char *start;
rb_len_t olen, roffset;
str_modify_keep_cr(str);
enc = STR_ENC_GET(str);
RSTRING_GETMEM(str, start, olen);
if (argc > 0) {
char table[TR_TABLE_SIZE];
VALUE del = 0, nodel = 0;
tr_setup_table_multi(table, &del, &nodel, str, argc, argv);
/* the selector conversion may have modified str */
str_modify_keep_cr(str);
enc = STR_ENC_GET(str);
RSTRING_GETMEM(str, start, olen);
roffset = rstrip_offset_table(str, start, start+olen, enc, table, del, nodel);
}
else {
roffset = rstrip_offset(str, start, start+olen, enc);
}
if (roffset > 0) {
rb_len_t len = olen - roffset;
STR_SET_LEN(str, len);
TERM_FILL(start+len, rb_enc_mbminlen(enc));
return str;
}
return Qnil;
}
Like String#rstrip, except that:
-
Performs stripping in
self(not in a copy ofself). -
Returns
selfif any characters are stripped,nilotherwise.
Related: see Modifying.