Что расширенное делает в этом коде?
class << self
def extended(klass)
klass.class_exec do
define_method :supported_attrs do
that_klass = self.class
that_klass.const_defined?(:ATTRS) ? that_klass.const_get(:ATTRS) : []
end
end
end
end
В проекте он не используется Только поддерживаемые_attrs Откуда взялся Класс? В проекте не упоминается о расширении
Хук Module#extended автоматически вызывается Ruby, а аргументом klass является модуль или класс, в котором был вызван extend.





Итак, если вы не знакомы с функцией Extension, ее короткая версия добавляет методы из указанного module в class. Когда вы вызываете extend, в модуле вызывается метод .extended с параметром class:
module MyModule
def self.extended(klass)
p klass
end
end
class MyClass
extend MyModule
# => Will print "MyClass"
end
Итак, в вашем случае вы можете поискать случаи, когда модуль используется, чтобы найти, где будут добавлены эти методы.
Это встроенный обратный вызов, см. Module#extended