ActiveSupport::Reloader (original) (raw)

Active Support Reloader

This class defines several callbacks:

to_prepare -- Run once at application startup, and also from
+to_run+.

to_run -- Run before a work run that is reloading. If
+reload_classes_only_on_change+ is true (the default), the class
unload will have already occurred.

to_complete -- Run after a work run that has reloaded. If
+reload_classes_only_on_change+ is false, the class unload will
have occurred after the work run, but before this callback.

before_class_unload -- Run immediately before the classes are
unloaded.

after_class_unload -- Run immediately after the classes are
unloaded.

Methods

A

B

N

R

T

W

Class Public methods

Registers a callback that will run immediately after the classes are unloaded.

Source: show | on GitHub

def self.after_class_unload(*args, &block) set_callback(:class_unload, :after, *args, &block) end

Registers a callback that will run immediately before the classes are unloaded.

Source: show | on GitHub

def self.before_class_unload(*args, &block) set_callback(:class_unload, *args, &block) end

Initiate a manual reload

Source: show | on GitHub

def self.reload! executor.wrap do new.tap do |instance| instance.run! ensure instance.complete! end end prepare! end

Registers a callback that will run once at application startup and every time the code is reloaded.

Source: show | on GitHub

def self.to_prepare(*args, &block) set_callback(:prepare, *args, &block) end

Run the supplied block as a work unit, reloading code as needed

Source: show | on GitHub

def self.wrap(**kwargs) return yield if active?

executor.wrap(**kwargs) do instance = run! begin yield ensure instance.complete! end end end

Instance Public methods

Release the unload lock if it has been previously obtained

Source: show | on GitHub

def release_unload_lock! if @locked @locked = false ActiveSupport::Dependencies.interlock.done_unloading end end

Source: show | on GitHub

def require_unload_lock! unless @locked ActiveSupport::Dependencies.interlock.start_unloading @locked = true end end