Using #respond_to? to avoid "no method error" is bad/good practice?

Sometimes, there is a need, that before calling a method on an object,
we should check, if the object responds to a method.

we can do the same either way -

ob.meth if ob.respond_to?(:meth)


ob.meth rescue NoMethodError

Which one is considered as best-practice and why ?

On Fri, Feb 21, 2014 at 1:14 PM, Arup R. [email protected]

Which one is considered as best-practice and why ?

It depends on the situation, and there are several other ways. You
can override method_missing to not raise an error, you can use try,
you can use a null object (which certainly keeps the calling code
cleanest), and probably a few others that aren’t springing to my mind


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs