class Appsignal::Hooks::PumaHook

@!visibility private

def dependencies_present?

def dependencies_present?
  defined?(::Puma) &&
    Gem::Version.new(Puma::Const::VERSION) >= Gem::Version.new("3.0.0")
end

def install

def install
  require "appsignal/integrations/puma"
  ::Puma::Server.prepend(Appsignal::Integrations::PumaServer)
  return unless defined?(::Puma::Cluster)
  # For clustered mode with multiple workers
  ::Puma::Cluster.send(:prepend, Module.new do
    def stop_workers
      Appsignal.stop("puma cluster")
      super
    end
  end)
end

def stop_workers

def stop_workers
  Appsignal.stop("puma cluster")
  super
end