Hacker News new | ask | show | jobs
by braythwayt 3897 days ago
This is a fundamental part of the language, the idea that objects and classes are dynamic, not static.

What I would say is that although we should have an extremely good reason to employ these techniques in production, I believe that every professional Ruby programmer should be able to understand them and/or figure them out in a few minutes.

It’s not like we’re talking about obfuscated C.

1 comments

Agree with you 100%, and the ability to dynamically define methods is one of Ruby's great strengths.

However, metaprogramming is a power that should be used wisely. When implemented unnecessarily it reduces readability (and probably performance) for no real gain.

The devise source contains some great examples of metaprogramming used properly:

https://github.com/plataformatec/devise/blob/master/lib/devi...