Methods
Method rules are name-based. They are useful for Rails boundary checks and project style conventions.
Forbid Calls
services.cannot_call :render, :redirect_to, :params, :session
Rule id: methods.forbid
This catches method sends from files assigned to the component.
By default a call matches whatever the receiver is, so queries.cannot_call :update flags user.update and cache.update alike. Pass receiver: :none to match only bare calls, where the receiver is implicit self:
services.cannot_call :render, :params, receiver: :none
pdf.render and client.params then pass, while a bare render or params fails. The :rails architectures use receiver: :none for the controller API. A bare call to a method the component defines, inherits, or generates with attr_* or delegate is treated as a call to its own API and is not flagged.
Forbid Definitions
library.cannot_define :call
Rule id: methods.define_forbid
This catches classes in the component that define the named method.
Use it when the method name itself is a design smell in that component.