Spec-Zone.ru › Ruby on Rails 7.1

класс ActiveSupport::Reloader

Родитель:
ActiveSupport::ExecutionWrapper

Active Support Reloader

Этот класс определяет несколько обратных вызовов:

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.

Публичные Классовые Методы

after_class_unload(*args, &block) Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 44
def self.after_class_unload(*args, &block)
  set_callback(:class_unload, :after, *args, &block)
end

Регистрирует обратный вызов, который будет выполнен сразу после разгрузки классов.

before_class_unload(*args, &block) Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 39
def self.before_class_unload(*args, &block)
  set_callback(:class_unload, *args, &block)
end

Регистрирует обратный вызов, который будет выполнен непосредственно перед разгрузкой классов.

new() Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 99
def initialize
  super
  @locked = false
end
Вызывает метод суперкласса
reload!() Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 51
def self.reload!
  executor.wrap do
    new.tap do |instance|
      instance.run!
    ensure
      instance.complete!
    end
  end
  prepare!
end

Инициировать ручную перезагрузку

to_prepare(*args, &block) Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 34
def self.to_prepare(*args, &block)
  set_callback(:prepare, *args, &block)
end

Регистрирует обратный вызов, который будет выполнен один раз при запуске приложения и каждый раз при перезагрузке кода.

wrap(**kwargs) { || ... } Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 71
def self.wrap(**kwargs)
  return yield if active?

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

Выполнить предоставленный блок в качестве единицы работы, перезагружая код по мере необходимости

Публичные Методы Экземпляров

release_unload_lock!() Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 114
def release_unload_lock!
  if @locked
    @locked = false
    ActiveSupport::Dependencies.interlock.done_unloading
  end
end

Освободить блокировку разгрузки, если она была ранее получена

require_unload_lock!() Показать исходный код
# File activesupport/lib/active_support/reloader.rb, line 106
def require_unload_lock!
  unless @locked
    ActiveSupport::Dependencies.interlock.start_unloading
    @locked = true
  end
end

Получить блокировку разгрузки, гарантируя, что она будет автоматически освобождена

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API