Ruby 2.5 added delete_prefix and delete_suffix methods

Amit Choudhary

Amit Choudhary

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.

If this blog was helpful, check out our full blog archive.

Stay up to date with our blogs.

Subscribe to receive email notifications for new blog posts.