класс ActiveSupport::Reloader
Публичные методы класса
# File activesupport/lib/active_support/reloader.rb, line 37 def self.after_class_unload(*args, &block) set_callback(:class_unload, :after, *args, &block) end
# File activesupport/lib/active_support/reloader.rb, line 33 def self.before_class_unload(*args, &block) set_callback(:class_unload, *args, &block) end
# File activesupport/lib/active_support/reloader.rb, line 90 def initialize super @locked = false end
Вызов метода суперкласса
# File activesupport/lib/active_support/reloader.rb, line 44
def self.reload!
executor.wrap do
new.tap do |instance|
begin
instance.run!
ensure
instance.complete!
end
end
end
prepare!
end Инициировать ручную перезагрузку
# File activesupport/lib/active_support/reloader.rb, line 29 def self.to_prepare(*args, &block) set_callback(:prepare, *args, &block) end
# File activesupport/lib/active_support/reloader.rb, line 66
def self.wrap
executor.wrap do
super
end
end Выполнение переданного блока как единицы работы, при необходимости перезагружая код
Вызов метода суперкласса ActiveSupport::ExecutionWrapper.wrap
Публичные методы экземпляра
# File activesupport/lib/active_support/reloader.rb, line 105
def release_unload_lock!
if @locked
@locked = false
ActiveSupport::Dependencies.interlock.done_unloading
end
end Освободить блокировку разгрузки, если она была ранее получена
# File activesupport/lib/active_support/reloader.rb, line 97
def require_unload_lock!
unless @locked
ActiveSupport::Dependencies.interlock.start_unloading
@locked = true
end
end Получить блокировку разгрузки ActiveSupport::Dependencies::Interlock, обеспечивая её автоматическое освобождение
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.