¶ ↑
sinatra-gengithub.com/quirkey/sinatra-gen
¶ ↑
DESCRIPTION: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
¶ ↑
SYNOPSIS: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.
¶ ↑
ActionsFor 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.
¶ ↑
MiddlewareYou 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
¶ ↑
Options(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)
¶ ↑
ACKNOWLEDGEMENTS:Big props to the Sinatra developers (github.com/bmizerany/sinatra/). Also, thanks to Dr. Nic (github.com/drnic) for the Rubigen and Newgem libraries
¶ ↑
REQUIREMENTS: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.
¶ ↑
INSTALL:sudo gem install sinatra-gen
You can also install directly from github:
sudo gem install quirkey-sinatra-gen -s http://gems.github.com