Consider disabling the `Rails/Delegate` cop
The Rails/Delegate cop suggests using delegate instead of defining a method that only delegates.
We should consider disabling this for a few reasons:
-
def nameis more greppable thandelegate :foo, :bar, :name, prefix: true, allow_nil: true - If the method is overriden in a subclass, it's better to have it implemented explicitly in the parent class to avoid any confusion
- When
prefix: trueis used, the generated method is prefixed with the name of the object the method is delegated to. For instancedelegate :name, to: :project, prefix: trueis equivalent todef project_name, which is confusing, and anti-greppable - Even if delegate provides the
allow_nil: trueoption, you can do the same withobject&.method - When using
delegate, the public interface of the class is expanded in a subtle manner. Having the delegation method defined explicitly would make the interface size more obvious and could lead to realize that the class may be doing too much.