Portanto, uma tarefa do Rake pode ser a sua solução preferida. Ela foi projetada propositalmente para execução de scripts ad hoc. Eu ainda a colocaria em um plugin, pois você pode gerenciá-la bem no GitHub e nunca esquecerá onde a colocou ou a excluirá acidentalmente.
Aqui estão vários exemplos: discourse/lib/tasks at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub