Spec-Zone.ru › Ruby on Rails 8.1

модуль ActiveSupport::DescendantsTracker

Отслеживание потомков Active Support

Этот модуль предоставляет внутреннюю реализацию для отслеживания потомков, которая работает быстрее, чем перебор ObjectSpace.

Однако в Ruby 3.1 появился быстрый встроенный метод +Class#subclasses+, поэтому, если вы знаете, что ваш код не будет выполняться в более старых версиях Ruby, подключение ActiveSupport::DescendantsTracker не даст никаких преимуществ.

Общедоступные методы класса

descendants (klass) Показать исходный код
# File activesupport/lib/active_support/descendants_tracker.rb, line 102
def descendants(klass)
  klass.descendants
end
subclasses (klass) Показать исходный код
# File activesupport/lib/active_support/descendants_tracker.rb, line 98
def subclasses(klass)
  klass.subclasses
end

Общедоступные методы экземпляра

descendants () Показать исходный код
# File activesupport/lib/active_support/descendants_tracker.rb, line 107
def descendants
  subclasses = DescendantsTracker.reject!(self.subclasses)
  subclasses.concat(subclasses.flat_map(&:descendants))
end

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

Spec-Zone.ru

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