class ActiveSupport::Reloader
Public Class Methods
after_class_unload(*args, &block)
click to toggle source
Registers a callback that will run immediately after the classes are unloaded.
# File lib/active_support/reloader.rb, line 43 def self.after_class_unload(*args, &block) set_callback(:class_unload, :after, *args, &block) end
before_class_unload(*args, &block)
click to toggle source
Registers a callback that will run immediately before the classes are unloaded.
# File lib/active_support/reloader.rb, line 38 def self.before_class_unload(*args, &block) set_callback(:class_unload, *args, &block) end
new()
click to toggle source
Calls superclass method
# File lib/active_support/reloader.rb, line 91 def initialize super @locked = false end
reload!()
click to toggle source
Initiate a manual reload
# File lib/active_support/reloader.rb, line 50 def self.reload! executor.wrap do new.tap do |instance| instance.run! ensure instance.complete! end end prepare! end
to_prepare(*args, &block)
click to toggle source
Registers a callback that will run once at application startup and every time the code is reloaded.
# File lib/active_support/reloader.rb, line 33 def self.to_prepare(*args, &block) set_callback(:prepare, *args, &block) end
wrap()
click to toggle source
Run the supplied block as a work unit, reloading code as needed
Calls superclass method
ActiveSupport::ExecutionWrapper::wrap
# File lib/active_support/reloader.rb, line 70 def self.wrap executor.wrap do super end end
Public Instance Methods
release_unload_lock!()
click to toggle source
Release the unload lock if it has been previously obtained
# File lib/active_support/reloader.rb, line 106 def release_unload_lock! if @locked @locked = false ActiveSupport::Dependencies.interlock.done_unloading end end
require_unload_lock!()
click to toggle source
Acquire the ActiveSupport::Dependencies::Interlock
unload lock, ensuring it will be released automatically
# File lib/active_support/reloader.rb, line 98 def require_unload_lock! unless @locked ActiveSupport::Dependencies.interlock.start_unloading @locked = true end end