End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
String#delete_suffix!
str.delete_suffix!(suffix) → self or nil
string.c
View on GitHub ↗
static VALUE
rb_str_delete_suffix_bang(VALUE str, VALUE suffix)
{
long olen, suffixlen, len;
str_modifiable(str);
suffixlen = deleted_suffix_length(str, suffix);
if (suffixlen <= 0) return Qnil;
olen = RSTRING_LEN(str);
str_modify_keep_cr(str);
len = olen - suffixlen;
STR_SET_LEN(str, len);
TERM_FILL(&RSTRING_PTR(str)[len], TERM_LEN(str));
if (ENC_CODERANGE(str) != ENC_CODERANGE_7BIT) {
ENC_CODERANGE_CLEAR(str);
}
return str;
}
Deletes trailing suffix from str, returning nil if no change was made.
Example
"hello".delete_suffix!("llo") #=> "he" "hello".delete_suffix!("hel") #=> nil
See also
#delete_suffix
#downcase
#delete_prefix!
#downcase!
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.1