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

249c7fd851c5c5ac5a1abdb756472ae1?d=identicon&s=25 Arup Rakshit (my-ruby)
on 2014-02-21 19:14
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)

or

ob.meth rescue NoMethodError

Which one is considered as best-practice and why ?
Da4866904cd77478452d472640a40054?d=identicon&s=25 Dave Aronson (Guest)
on 2014-02-21 21:46
(Received via mailing list)
On Fri, Feb 21, 2014 at 1:14 PM, Arup Rakshit <lists@ruby-forum.com>
wrote:

>
> 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
immediately....

-Dave
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.