I don't recognise the current Rails codebase from this comment.
There's certainly nothing incomprehensible about it if you grok common Ruby metaprogramming idioms. I wish the idea of "Ruby magic" would die in flames!
It's not that I don't understand "Ruby magic" or "metaprogramming"; it's that the Rails codebase is spaghetti.
> I wish the idea of "Ruby magic" would die in flames!
Me, too. I think Giles Bowkett had an article on this; it was the only article on his blog that I liked. Superstitions and fear about Ruby's higher-level features remind me of people that are afraid of macros in Lisp or function pointers in C.
I found this to be true years ago. Rails 1.2 had really gnarly stack traces. I have yet to see Rails 3 throw up in such creative ways.
The current codebase is far from the spaghetti you claim. Active Record is probably the closest to it but it's been greatly changed internally from the original.
There's certainly nothing incomprehensible about it if you grok common Ruby metaprogramming idioms. I wish the idea of "Ruby magic" would die in flames!