There are times when I want to do batch processing or perform other command line activities that don’t fit well into the web-framework. The trouble is, my db connection info is based on what “environement” I’m working in. I could re-create the hooks to set that environment, but I’d rather leverage the existing capabilities in Sinatra to do so. That way if they change how it works in the future, I don’t have to work through all that again.

In Sinatra, there’s a Delegator module that handles passing requests for methods like ‘production?’ or ‘set’ off to the App. With that in mind, I can easily just include the Delegator and let it handle everything from there.