New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

shotgun

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shotgun

  • 0.9.2
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

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.

Compatibility

Because of the underlying technique used, Shotgun is only compatible with systems that support fork(2) (probably just MRI on POSIX systems).

Caveats

  • For performance reasons, Shotgun automatically includes middleware to serve static files (similar to Rack::Static). If you rely on Rack serving static assets, then do include Rack::Static yourself.

  • If you use Sinatra, you may need to set the session secret manually.

  • Similar to a Rackup file (config.ru), you can't use require_relative in your preload files (shotgun.rb).

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

FAQs

Package last updated on 10 Sep 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc