Module: Sqreen::Dependency::Rack

Defined in:
lib/sqreen/dependency/rack.rb

Class Method Summary collapse

Class Method Details

.find_handler(&block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/sqreen/dependency/rack.rb', line 11

def find_handler(&block)
  Sqreen::Graft::Hook.add('Rack::Server#server') do
    after do |call|
      callback = call.callback
      server = call.returned

      block.call(server)
      callback.disable # do this once, :server is a lazy init accessor
    end
  end
  Sqreen::Graft::Hook['Rack::Server#server'].install
end

.on_run(handler, &block) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/sqreen/dependency/rack.rb', line 24

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

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

.rackup?Boolean

Returns:

  • (Boolean)


34
35
36
37
38
# File 'lib/sqreen/dependency/rack.rb', line 34

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

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