I wanted to take a moment to share the slick features Jeweler has, and mention its tight integration with Github. Installing jeweler and setting up your Github credentials is simple.

$ gem install jeweler
$ git config --global github.user myUsername
$ git config --global github.token myAPIToken

After it’s set up, invoke jeweler with the following arguments to create a new project. Here, I’m setting it up with rspec and cucumber for testing and having a github repository automatically created.

$ jeweler --rspec --cucumber --summary "My Awesome Project" --create-repo myawesomeproject
create .gitignore
create Rakefile
create Gemfile
create LICENSE.txt
create README.rdoc
create .document
create lib
create lib/myawesomeproject.rb
create spec
create spec/spec_helper.rb
create spec/myawesomeproject_spec.rb
create .rspec
create features
create features/myawesomeproject.feature
create features/support
create features/support/env.rb
create features/step_definitions
create features/step_definitions/myawesomeproject_steps.rb
Jeweler has prepared your gem in ./myawesomeproject
Jeweler has pushed your repo to http://github.com/sensae/myawesomeproject`

You can optionally enable your project in the Travis CI dashboard as well to get continuous integration testing and email notifications as to your test suite’s status. All this together makes it almost effortless to create new ruby projects and scripts. Couple this with Thor for easy command line arguments, and you’ve got a recipe for making awesome shell scripts at a whim.