def my_method
super_result = super
...
(do something with super_result, or simply after super has been called)
...
super_result <== to make sure your method returns the result of super
end
you can just do this:
def my_method
super.tap{|result| (do something with/after result) } <== will still return the result of super
end
From my understanding, the anti-pattern is related to creating an API that requires a call to super when overriding a method. super.tap may be used when interacting with an API that employs the "call super" anti-pattern, but calling super is not itself an instance of the anti-pattern; it can be used in perfectly legitimate cases as well.