Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Expand ActionDispatch::Reloader docs

  • Loading branch information...
commit d4afde9ab025854b35634af51fe2ef4edf1f8549 1 parent 3c1a0a8
John Firebaugh authored
Showing with 14 additions and 6 deletions.
  1. +14 −6 actionpack/lib/action_dispatch/middleware/reloader.rb
View
20 actionpack/lib/action_dispatch/middleware/reloader.rb
@@ -1,7 +1,10 @@
module ActionDispatch
- # ActionDispatch::Reloader provides to_prepare and to_cleanup callbacks.
- # These are analogs of ActionDispatch::Callback's before and after
- # callbacks, with the difference that to_cleanup is not called until the
+ # ActionDispatch::Reloader provides prepare and cleanup callbacks,
+ # intended to assist with code reloading during development.
+ #
+ # Prepare callbacks are run before each request, and cleanup callbacks
+ # after each request. In this respect they are analogs of ActionDispatch::Callback's
+ # before and after callbacks. However, cleanup callbacks are not called until the
# request is fully complete -- that is, after #close has been called on
# the request body. This is important for streaming responses such as the
# following:
@@ -15,7 +18,10 @@ module ActionDispatch
# classes before they are unloaded.
#
# By default, ActionDispatch::Reloader is included in the middleware stack
- # only in the development environment.
+ # only in the development environment; specifically, when config.cache_classes
+ # is false. Callbacks may be registered even when it is not included in the
+ # middleware stack, but are executed only when +ActionDispatch::Reloader.prepare!+
+ # or +ActionDispatch::Reloader.cleanup!+ are called manually.
#
class Reloader
include ActiveSupport::Callbacks
@@ -23,8 +29,8 @@ class Reloader
define_callbacks :prepare, :scope => :name
define_callbacks :cleanup, :scope => :name
- # Add a preparation callback. Preparation callbacks are run before each
- # request.
+ # Add a prepare callback. Prepare callbacks are run before each request, prior
+ # to ActionDispatch::Callback's before callbacks.
def self.to_prepare(*args, &block)
set_callback(:prepare, *args, &block)
end
@@ -35,10 +41,12 @@ def self.to_cleanup(*args, &block)
set_callback(:cleanup, *args, &block)
end
+ # Execute all prepare callbacks.
def self.prepare!
new(nil).send(:_run_prepare_callbacks)
end
+ # Execute all cleanup callbacks.
def self.cleanup!
new(nil).send(:_run_cleanup_callbacks)
end

0 comments on commit d4afde9

Please sign in to comment.
Something went wrong with that request. Please try again.