I tend to use Rake tasks for my Rails apps… and CLIs for pretty much anything else: I find Rake’s arguments support a bit cumbersome to use.
If you take the CLI path, there are pretty good libraries than provide not only argument parsing/validation, but also help commands and UI utils. I’ve used GitHub - tj/commander: The complete solution for Ruby command-line executables for a couple CLI projects and I found it pretty complete feature-wise (for my requirements) and very easy to learn.