Don't know if I could get my head around what's going on here, so I'm going to ask a couple of questions :)

* Why are we using `try` instead of plain `public_send`? `try` would be needed only if we think there could be an error (a typo, for instance) in the config file, is that right?

* Isn't `is_a?` more readable than `===`? :P 

* Maybe we could use something such as `column_name`? `key` seems a little cryptic for me in this context (but maybe it's just me not getting what's going on!)