mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Apply @Jesus' plugin docs reformatting from #1849
This commit is contained in:
parent
17035b0ee9
commit
6bb070bb47
1 changed files with 20 additions and 10 deletions
|
@ -1,15 +1,22 @@
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
||||||
Puma 3.0 added support for plugins that can augment configuration and service operations.
|
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:
|
2 canonical plugins to look to aid in development of further plugins:
|
||||||
|
|
||||||
* [tmp\_restart](https://github.com/puma/puma/blob/master/lib/puma/plugin/tmp_restart.rb): Restarts the server if the file `tmp/restart.txt` is touched
|
* [tmp\_restart](https://github.com/puma/puma/blob/master/lib/puma/plugin/tmp_restart.rb):
|
||||||
* [heroku](https://github.com/puma/puma-heroku/blob/master/lib/puma/plugin/heroku.rb): Packages up the default configuration used by puma on Heroku
|
Restarts the server if the file `tmp/restart.txt` is touched
|
||||||
|
* [heroku](https://github.com/puma/puma-heroku/blob/master/lib/puma/plugin/heroku.rb):
|
||||||
|
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 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).
|
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.
|
The `tmp_restart` plugin is bundled with puma, so it can always be used.
|
||||||
|
|
||||||
|
@ -17,12 +24,15 @@ To use the `heroku` plugin, add `puma-heroku` to your Gemfile or install it.
|
||||||
|
|
||||||
### API
|
### API
|
||||||
|
|
||||||
At present, there are 2 hooks that plugins can use: `start` and `config`.
|
## Server-wide hooks
|
||||||
|
|
||||||
`start` runs when the server has started and allows the plugin to start other functionality to augment puma.
|
Plugins can use a couple of hooks at server level: `start` and `config`.
|
||||||
|
|
||||||
`config` runs when the server is being configured and is passed a `Puma::DSL` object that can be used to add additional configuration.
|
`start` runs when the server has started and allows the plugin to start other
|
||||||
|
functionality to augment puma.
|
||||||
|
|
||||||
Any public methods in `Puma::Plugin` are the public API that any plugin may use.
|
`config` runs when the server is being configured and is passed a `Puma::DSL`
|
||||||
|
object that can be used to add additional configuration.
|
||||||
|
|
||||||
In the future, more hooks and APIs will be added.
|
Any public methods in `Puma::Plugin` are the public API that any plugin may
|
||||||
|
use.
|
||||||
|
|
Loading…
Reference in a new issue