Sha256: 4d090aa642b151220cbec444f7092106d27ea853677bae50fe683defd3426a1f

Contents?: true

Size: 1.07 KB

Versions: 12

Compression:

Stored size: 1.07 KB

Contents

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

module Sqreen
  module Dependency
    module Rack
      module_function

      def find_handler(&block)
        Sqreen::Dependency::Hook.add('Rack::Server#server') do
          after do |callback, _, server, _|
            block.call(server)
            callback.disable # do this once, :server is a lazy init accessor
          end
        end
        Sqreen::Dependency::Hook['Rack::Server#server'].install
      end

      def on_run(handler, &block)
        Sqreen.log.debug "[#{Process.pid}] #{handler.inspect}"
        hookpoint_name = "#{handler.name}.run"

        Sqreen::Dependency::Hook.add(hookpoint_name) do
          before { block.call(handler) }
        end
        Sqreen::Dependency::Hook[hookpoint_name].install
      end

      def rackup?
        return false if Sqreen::Dependency::Rails.server?

        Sqreen::Dependency.const_exist?('Rack::Server') && ObjectSpace.each_object(::Rack::Server).count > 0
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
sqreen-1.18.6-java lib/sqreen/dependency/rack.rb
sqreen-1.18.6 lib/sqreen/dependency/rack.rb
sqreen-1.18.5-java lib/sqreen/dependency/rack.rb
sqreen-1.18.5 lib/sqreen/dependency/rack.rb
sqreen-1.18.4-java lib/sqreen/dependency/rack.rb
sqreen-1.18.4 lib/sqreen/dependency/rack.rb
sqreen-1.18.3-java lib/sqreen/dependency/rack.rb
sqreen-1.18.3 lib/sqreen/dependency/rack.rb
sqreen-1.18.3.beta2 lib/sqreen/dependency/rack.rb
sqreen-1.18.3.beta1 lib/sqreen/dependency/rack.rb
sqreen-1.18.2-java lib/sqreen/dependency/rack.rb
sqreen-1.18.2 lib/sqreen/dependency/rack.rb