From 541393ebf95da14e03baf6a1ebe8aa20f64a6fc6 Mon Sep 17 00:00:00 2001 From: Evan Phoenix Date: Sat, 6 Feb 2016 23:10:48 -0800 Subject: [PATCH] Add ability for plugins to alter the config on load --- lib/puma/cli.rb | 2 +- lib/puma/dsl.rb | 8 ++++++-- lib/puma/plugin.rb | 5 +++++ lib/puma/plugin_loader.rb | 2 ++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/puma/cli.rb b/lib/puma/cli.rb index c9fa15c3..18f904fd 100644 --- a/lib/puma/cli.rb +++ b/lib/puma/cli.rb @@ -204,7 +204,7 @@ module Puma o.banner = "puma " o.on_tail "-h", "--help", "Show help" do - log o + $stdout.puts o exit 0 end end diff --git a/lib/puma/dsl.rb b/lib/puma/dsl.rb index 7ab8067e..d9685fe0 100644 --- a/lib/puma/dsl.rb +++ b/lib/puma/dsl.rb @@ -12,7 +12,7 @@ module Puma options end - def initialize(config, options) + def initialize(options, config) @config = config @options = options end @@ -385,7 +385,11 @@ module Puma # Load the named plugin for use by this configuration # def plugin(name) - @config.load_plugin name + plugin = @config.load_plugin name + + if plugin.respond_to? :config + plugin.config self + end end end end diff --git a/lib/puma/plugin.rb b/lib/puma/plugin.rb index 04ef0b19..2eff6830 100644 --- a/lib/puma/plugin.rb +++ b/lib/puma/plugin.rb @@ -26,5 +26,10 @@ module Puma def in_background(&blk) Thread.new(&blk) end + + def workers_supported? + return false if Puma.jruby? || Puma.windows? + true + end end end diff --git a/lib/puma/plugin_loader.rb b/lib/puma/plugin_loader.rb index ab5e70cb..9e7e814e 100644 --- a/lib/puma/plugin_loader.rb +++ b/lib/puma/plugin_loader.rb @@ -1,3 +1,5 @@ +require 'puma/plugin' + module Puma class UnknownPlugin < RuntimeError; end