/guard-puma

Restart puma when files change

Primary LanguageRubyMIT LicenseMIT

Guard::Puma

Build Status

Restart Puma when some files change

Installation

Add this line to your application's Gemfile:

gem 'guard-puma'

And then execute:

$ bundle

Or install it yourself as:

$ gem install guard-puma

Usage

guard init puma or add the following manually to your Guardfile

guard 'puma', :port => 4000 do
  watch('Gemfile.lock')
  watch(%r{^config|lib/.*})
end

Run guard-puma with bundle exec guard.

Note that if you're running guard-puma in Docker, you'll additionally need to pass the -i argument to your command in order to disable all terminal interactions, for example:

CMD ["bundle", "exec", "guard", "-i"]

Options

  • :port is the port number to run on (default 4000)
  • :environment is the environment to use (default development)
  • :start_on_start will start the server when starting Guard and stop the server when reloading/stopping Guard (default true)
  • :force_run kills any process that's holding open the listen port before attempting to (re)start Puma (default false).
  • :daemon runs the server as a daemon, without any output to the terminal that ran guard (default false).
  • :quiet runs the server in quiet mode, suppressing output (default true).
  • :debugger runs the server with the debugger enabled (default false). Required ruby-debug gem.
  • :timeout waits this number of seconds when restarting the Puma server before reporting there's a problem (default 20).
  • :restart_timeout waits this number of seconds before the next restarting the Puma server (default 1).
  • :config is the path to the Puma config file (optional)
  • :bind is URI to bind to (tcp:// and unix:// only) (optional)
  • :control_token is the token to use as authentication for the control server(optional)
  • :control_port is the port to use for the control server(optional)
  • :threads is the min:max number of threads to use. Defaults to 0:16 (optional)
  • :pumactl manages the server via pumactl executable instead of puma (default false)
    • Incompatible with options such as port, environment, daemon, bind, threads
    • Use with config option is preferred.
  • :notifications is the list of notification types that will be sent. Defaults to [:restarting, :restarted, :not_restarted, :stopped] (optional)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Leave the version alone!
  4. Add what you changed to CHANGES.md
  5. Commit your changes (git commit -am 'Added some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create new Pull Request

Releasing

  1. Update changelog
  2. Bump version in lib/guard/puma/version.rb
  3. Commit
  4. gem build guard-puma.gemspec
  5. gem push guard-puma-VERSION.gem