I like how this is setup so that the safe_methods can be specified for each versions of Rails, but is this something that should be editable per program? It seems like a static set for each Rails version.

For example, I wonder how this code would function if you set the safe methods to NOT include :reconnect!, :disconnect!, :log, etc. Or even lead to confusing behavior if :select_one was in the list, but :select_all wasn't.