Module: RackAfterReply

Defined in:
lib/rack_after_reply.rb,
lib/rack_after_reply/adapter.rb,
lib/rack_after_reply/version.rb,
lib/rack_after_reply/app_proxy.rb,
lib/rack_after_reply/adapter/base.rb,
lib/rack_after_reply/adapter/thin.rb,
lib/rack_after_reply/adapter/mongrel.rb,
lib/rack_after_reply/adapter/unicorn.rb,
lib/rack_after_reply/adapter/webrick.rb,
lib/rack_after_reply/request_handler.rb,
lib/rack_after_reply/adapter/passenger.rb

Defined Under Namespace

Modules: Adapter, RequestHandler Classes: AppProxy

Constant Summary collapse

CALLBACKS_KEY =
'rack_after_reply.callbacks'.freeze
VERSION =
[0, 0, 2]

Class Method Summary collapse

Class Method Details

.applyObject

Apply extensions for all loaded web servers.



14
15
16
17
18
19
20
# File 'lib/rack_after_reply.rb', line 14

def apply
  Adapter::Thin.apply if defined?(::Thin)
  Adapter::Mongrel.apply if defined?(::Mongrel)
  Adapter::Passenger.apply if defined?(::PhusionPassenger)
  Adapter::WEBrick.apply if defined?(::WEBrick)
  Adapter::Unicorn.apply if defined?(::Unicorn)
end

.freedom_extend(object, method) ⇒ Object

:nodoc:



32
33
34
35
# File 'lib/rack_after_reply.rb', line 32

def freedom_extend(object, method) # :nodoc:
  klass = (class << object; self; end)
  freedom_patch(klass, method)
end

.freedom_patch(mod, method) ⇒ Object

:nodoc:



22
23
24
25
26
27
28
29
30
# File 'lib/rack_after_reply.rb', line 22

def freedom_patch(mod, method) # :nodoc:
  # Prevent infinite recursion if we've already done it.
  return if mod.method_defined?("#{method}_without_rack_after_reply")

  mod.module_eval do
    alias_method "#{method}_without_rack_after_reply", method
    alias_method method, "#{method}_with_rack_after_reply"
  end
end