github.com/quirkey/sinatra-gen
sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework. For more information on sinatra, check out sinatrarb.com
sinatra-gen has a bunch of different options (based looseley on merb-gen) to try to not lock the user into any specific frameworks/dev practices.
Run:
sinatra-gen [appname] [options] [paths]
e.g.
sinatra-gen mysinatrapp --vendor --init --test=shoulda --views=haml get:/ post:/:id
! Note: As of version 0.4.0 by default the sinatra app is placed in lib/appname.rb and is a subclass of Sinatra::Application. If you want ‘classic’ style apps (no class/module) use the –tiny option.
For even faster app development you specify actions to include in your app when generating. Actions are written out as
http_method:path
And are separated by spaces. For example:
get:/ post:/:id put:/update/*
Will be added you your app as:
get '/' do end post '/:id' do end put '/update/*' do end
It will also generate test skeletons in the test framework of your choosing.
You can specify middleware to include by passing the filename(s) or class name(s), seperated by commas.
sinatra-gen myapp --middleware=rack/flash,Rack::Cache
Will place both the ‘require’ and ‘use’ statements in your app.
require 'rack/flash' require 'rack/cache' #... use Rack::Flash use Rack::Cache
(can also be obtained by running sinatra-gen with no arguments):
-v, --version Show the sinatra-gen version number and quit. -d, --vendor Extract the latest sinatra to vendor/sinatra --tiny Only create the minimal files. --init Initialize a git repository --heroku Create a Heroku app (also runs 'git init'). Optionally, specify the path to the heroku bin --cap Adds config directory with basic capistrano deploy.rb --scripts Install the rubigen scripts (script/generate, script/destroy) --test=test_framework Specify your testing framework (bacon (default)/rspec/spec/shoulda/test) --views=view_framework Specify your view framework (haml (default)/erb/builder) --middleware=rack-middleware Specify Rack Middleware to be required and included (comma delimited) --vegas, --bin=[bin_name] Create an executable bin using Vegas. Pass an optional bin_name
General Options:
-h, --help Show this help message and quit. -p, --pretend Run but do not make any changes. -f, --force Overwrite files that already exist. -s, --skip Skip files that already exist. -q, --quiet Suppress normal output. -t, --backtrace Debugging: show backtrace on errors. -c, --svn Modify files with subversion. (Note: svn must be in path) -g, --git Modify files with git. (Note: git must be in path)
The –tiny option will create no directories. Just an app.rb, a Rakefile, and a config.ru (Rackup file)
Big props to the Sinatra developers (github.com/bmizerany/sinatra/). Also, thanks to Dr. Nic (github.com/drnic) for the Rubigen and Newgem libraries
To use the –vendor option, git must be installed. To use the –bin/vegas option Vegas is required (sudo gem install vegas). To use the –heroku option, a Heroku account and the heroku gem is required (sudo gem install heroku).
To run the app without using the vendor option, the sinatra gem must be installed.
sudo gem install sinatra-gen
You can also install directly from github:
sudo gem install quirkey-sinatra-gen -s http://gems.github.com