Plugins
Puma 3.0 added support for plugins that can augment configuration and service
operations.
2 canonical plugins to look to aid in development of further plugins:
- tmp_restart:
Restarts the server if the file
tmp/restart.txtis touched - heroku: Packages up the default configuration used by puma on Heroku
Plugins are activated in a puma configuration file (such as config/puma.rb')
by adding plugin "name", such as plugin "heroku".
Plugins are activated based simply on path requirements so, activating the
heroku plugin will simply be doing require "puma/plugin/heroku". This
allows gems to provide multiple plugins (as well as unrelated gems to provide
puma plugins).
The tmp_restart plugin is bundled with puma, so it can always be used.
To use the heroku plugin, add puma-heroku to your Gemfile or install it.
API
Server-wide hooks
Plugins can use a couple of hooks at server level: start and config.
start runs when the server has started and allows the plugin to start other
functionality to augment puma.
config runs when the server is being configured and is passed a DSL
object that can be used to add additional configuration.
Any public methods in Plugin are the public API that any plugin may
use.