How to deprecate Ruby methods
I've seen comments like this all too often in rails projects:
class Thing
def method_0
end
# These methods shouldn't be used.
# Let's delete them in the future.
def method_1
end
def method_2
end
end
What's wrong with this?
- The comment may no longer apply if the methods move around or someone accidentally inserts a method in between them.
- Deprecated methods blend in with the rest of the class's methods.
Simply wrap these methods inside a module called DeprecatedMethods, then mix it in to the class.
For example:
class Thing
def method_0
end
module DeprecatedMethods
def method_1
end
def method_2
end
end
include DeprecatedMethods
end
Now the comment isn't really necessary, and the deprecated methods live within their own module that's namespaced to the class at hand.
Nothing groundbreaking, I know, but I find it to be an easy win to keep your deprecated methods organized until they're eventually removed.