Sha256: 7e7208945e08cac3c7bdfc0edfb461b18f0ead089a8d6821cad2f9eee1ff2791

Contents?: true

Size: 948 Bytes

Versions: 106

Compression:

Stored size: 948 Bytes

Contents

module ScoutApm
  module ServerIntegrations
    class Puma
      attr_reader :logger

      def initialize(logger)
        @logger = logger
      end

      def name
        :puma
      end

      def forking?
        return false unless defined?(::Puma)
        options = ::Puma.cli_config.instance_variable_get(:@options)
        options[:preload_app]
      rescue
        false
      end

      def present?
        defined?(::Puma) && (File.basename($0) =~ /\Apuma/)
      end

      def install
        old = ::Puma.cli_config.options[:before_worker_boot] || []
        new = Array(old) + [Proc.new do
          logger.info "Installing Puma worker loop."
          ScoutApm::Agent.instance.start_background_worker
        end]

        ::Puma.cli_config.options[:before_worker_boot] = new
      rescue
        logger.warn "Unable to install Puma worker loop: #{$!.message}"
      end

      def found?
        true
      end
    end
  end
end

Version data entries

106 entries across 106 versions & 1 rubygems

Version Path
scout_apm-5.3.2 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.3.1 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.3.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.2.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.1.1 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.1.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-5.0.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.1.2 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.1.1 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.1.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.0.4 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.0.3 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.0.2 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.0.1 lib/scout_apm/server_integrations/puma.rb
scout_apm-4.0.0 lib/scout_apm/server_integrations/puma.rb
scout_apm-2.6.10 lib/scout_apm/server_integrations/puma.rb
scout_apm-2.6.9 lib/scout_apm/server_integrations/puma.rb
scout_apm-2.6.8 lib/scout_apm/server_integrations/puma.rb
scout_apm-2.6.7 lib/scout_apm/server_integrations/puma.rb
scout_apm-2.6.6 lib/scout_apm/server_integrations/puma.rb