> The metaprogramming would be "cooler" 

I've never been "cool", I'll take your word for it on that.

> but it's too clever for its own good.

I disagree, defining dynamic methods, particularly in Ruby (think method_missing *et al*) is not all unusual or "clever" in the bad sense of the word.

If one can write code so clearly that it doesn't require comments to read and understand that's always a win.  Nevertheless, if one can replace ~50 LOC with (~6 LOC + 1 line comment) I'd say that's a better win.  Particularly when the ~50 LOC are in a way just boilerplate.