class Puma::Events
for each event type.
Using ‘Puma::DSL` it is possible to register callback hooks
lifecycle events such as :on_booted, :on_restart, and :on_stopped.
This is an event sink used by `Puma::Server` to handle
def fire(hook, *args)
def fire(hook, *args) @hooks[hook].each { |t| t.call(*args) } end
def fire_on_booted!
def fire_on_booted! fire(:on_booted) end
def fire_on_restart!
def fire_on_restart! fire(:on_restart) end
def fire_on_stopped!
def fire_on_stopped! fire(:on_stopped) end
def initialize
def initialize @hooks = Hash.new { |h,k| h[k] = [] } end
def on_booted(&block)
def on_booted(&block) register(:on_booted, &block) end
def on_restart(&block)
def on_restart(&block) register(:on_restart, &block) end
def on_stopped(&block)
def on_stopped(&block) register(:on_stopped, &block) end
def register(hook, obj=nil, &blk)
def register(hook, obj=nil, &blk) if obj and blk raise "Specify either an object or a block, not both" end h = obj || blk @hooks[hook] << h h end