Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

reloading rack development server / forking version of rackup

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 lib
Octocat-spinner-32 man
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 COPYING
Octocat-spinner-32 README.md
Octocat-spinner-32 RELEASING
Octocat-spinner-32 Rakefile
Octocat-spinner-32 shotgun.gemspec
README.md

Shotgun

This is an automatic reloading version of the rackup command that's shipped with Rack. It can be used as an alternative to the complex reloading logic provided by web frameworks or in environments that don't support application reloading.

The shotgun command starts one of Rack's supported servers (e.g., mongrel, thin, webrick) and listens for requests but does not load any part of the actual application. Each time a request is received, it forks, loads the application in the child process, processes the request, and exits the child process. The result is clean, application-wide reloading of all source files and templates on each request.

Usage

Installation:

  gem install shotgun

Starting a server with a rackup file:

  shotgun config.ru

Using Thin and starting on port 6000 instead of 9393 (default):

  shotgun --server=thin --port=6000 config.ru

Running Sinatra apps:

  shotgun hello.rb

See 'shotgun --help' for more advanced usage.

Links

Shotgun

Rack

Sinatra

The reloading system in Ian Bicking's webware framework served as inspiration for the approach taken in Shotgun. Ian lays down the pros and cons of this approach in the following article:

http://ianbicking.org/docs/Webware_reload.html

Something went wrong with that request. Please try again.