Guard::Puma
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 (default4000
) -
:environment
is the environment to use (defaultdevelopment
) -
:start_on_start
will start the server when starting Guard and stop the server when reloading/stopping Guard (defaulttrue
) -
:force_run
kills any process that's holding open the listen port before attempting to (re)start Puma (defaultfalse
). -
:daemon
runs the server as a daemon, without any output to the terminal that ranguard
(defaultfalse
). -
:quiet
runs the server in quiet mode, suppressing output (defaulttrue
). -
:debugger
runs the server with the debugger enabled (defaultfalse
). Required ruby-debug gem. -
:timeout
waits this number of seconds when restarting the Puma server before reporting there's a problem (default20
). -
:restart_timeout
waits this number of seconds before the next restarting the Puma server (default1
). -
: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 viapumactl
executable instead ofpuma
(defaultfalse
)- Incompatible with options such as
port
,environment
,daemon
,bind
,threads
- Use with
config
option is preferred.
- Incompatible with options such as
-
:notifications
is the list of notification types that will be sent. Defaults to[:restarting, :restarted, :not_restarted, :stopped]
(optional)
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Leave the version alone!
- Add what you changed to CHANGES.md
- Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Releasing
- Update changelog
- Bump version in
lib/guard/puma/version.rb
- Commit
gem build guard-puma.gemspec
gem push guard-puma-VERSION.gem