Pundit have recently changed to using NoMethodError, which breaks our spec - the main benefit of this change is that the new error extends from StandardError so in theory is easier to catch; however, it seems the community is divided as aside from the different superclass the existing error is more accurate since NoMethodError is meant to be thrown when the class does not respond_to? the method in question and that is not true.
I personally would like to keep using NotImplementedError though I'm happy to change if someone does prove a real-world situation where it's more burdson to catch (or that our error monitoring won't catch it), but I feel that should be a separate conversation - so this PR is changing it back to maintain our current status quo until such time that we do decide to change.
Pundit have recently changed to using
NoMethodError
, which breaks our spec - the main benefit of this change is that the new error extends fromStandardError
so in theory is easier to catch; however, it seems the community is divided as aside from the different superclass the existing error is more accurate sinceNoMethodError
is meant to be thrown when the class does notrespond_to?
the method in question and that is not true.I personally would like to keep using
NotImplementedError
though I'm happy to change if someone does prove a real-world situation where it's more burdson to catch (or that our error monitoring won't catch it), but I feel that should be a separate conversation - so this PR is changing it back to maintain our current status quo until such time that we do decide to change.