Ruby 2.5 added delete_prefix and delete_suffix methods

Amit Choudhary

By Amit Choudhary

on November 28, 2017

This blog is part of our  Ruby 2.5 series.

Ruby 2.4

Let's say that we have a string Projects::CategoriesController and we want to remove Controller. We can use chomp method.

1irb> "Projects::CategoriesController".chomp("Controller")
2=> "Projects::Categories"

However if we want to remove Projects:: from the string then there is no corresponding method of chomp. We need to resort to sub.

1irb> "Projects::CategoriesController".sub(/Projects::/, '')
2=> "CategoriesController"

Naotoshi Seo did not like using regular expression for such a simple task. He proposed that Ruby should have a method for taking care of such tasks.

Some of the names proposed were remove_prefix, deprefix, lchomp, remove_prefix and head_chomp.

Matz suggested the name delete_prefix and this method was born.

Ruby 2.5.0-preview1

1irb> "Projects::CategoriesController".delete_prefix("Projects::")
2=> "CategoriesController"

Now in order to delete prefix we can use delete_prefix and to delete suffix we could use chomp. This did not feel right. So for symmetry delete_suffix was added.

1irb> "Projects::CategoriesController".delete_suffix("Controller")
2=> "Projects::Categories"

Read up on this discussion to learn more about how elixir, go, python, and PHP deal with similar requirements.

Stay up to date with our blogs. Sign up for our newsletter.

We write about Ruby on Rails, ReactJS, React Native, remote work,open source, engineering & design.