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.
irb> "Projects::CategoriesController".chomp("Controller")
=> "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.
irb> "Projects::CategoriesController".sub(/Projects::/, '')
=> "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
irb> "Projects::CategoriesController".delete_prefix("Projects::")
=> "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.
irb> "Projects::CategoriesController".delete_suffix("Controller")
=> "Projects::Categories"Read up on this discussion to learn more about how elixir, go, python, and PHP deal with similar requirements.