Ruby application generator

A Thor based generator to rapidly create a Ruby project with all the infrastructure setup for testing, mocking etc.

  • Jeweler to create basic gem setup
  • Binaries in \bin if --binaries
  • Project library files in /lib
  • Cucumber features, step definitions and basic configurations
  • Rspec2 specs with configurations
  • Unit tests
  • Shoulda tests
  • Mock libraries: mocha, flex, rr, rspec
  • Autotest with grock and fsevent
  • Bundler configuration for gem management
  • Require DSL using require-me gem
  • RCov for test coverage
  • Heckle for test mutations

Install

It can be installed as a thor task:

$ thor install lib/application.thor

Alternatively install it as a gem and use the binary. $ gem install rubyapp

Usage

To run it as a thor task: $ thor ruby:app my-ruby-app [options]

Alternatively run it using the binary $ rubyapp my-ruby-project [options]

Options

You can define system wide default options for ruby apps you create (your preferred framework stack) in a ~/.rubyapp file. The ~* implies ENV['HOME], the environment variable "HOME" on any system. Any options you call the program with explicitly will override the defaults in this file.

The options --rspec2, --cucumber, --license, --autotest, and --bundler are all set to true unless explicitly disabled either in the .rubyapp file or using the negation option when rubyapp is run (see negating boolean options below).

Boolean options: To negate a boolean option prefix it with no-, fx --no-rspec2 to disable rspec2 from the project infrastructure creation.

Rubyproject currently supports the following boolean options:

--install_gems
--jeweler
--bundler
--rspec2 
--cucumber
--signatures
--license
--binaries
--test_unit
--shoulda
--autotest
--heckle
--rake
--rcov   
--timecop
--fakefs
--require_me

String options: --mock-lib --factory-lib

Mock-lib: Valid mock-lib values: rspec, mocha, flexmock, rr

Example: $ rubyapp my-ruby-mock-project --mock-lib flexmock

Factory-lib: Valid factory-lib values: factory_girl, machinist, object_daddy, blueprints

Example: $ rubyapp my-ruby-mock-project --factory-lib factory_girl

Community

Please feel free to fork this project or provide suggestions for improvements, bug fixes etc.

Share and enjoy!

Copyright (c) 2010, Kristian Mandrup