Решение 1 (Прямое):
module DelayedTasks
class A
end
class B
end
class C
end
class D
end
end
DelayedTasks.constants.each do |constant|
constant.include DelayedEmails if constant.is_a? Class
end
Однако, поскольку файл выше называется построчно, то если есть другой файл, который добавляет больше классов внутри модуля DelayedTasks
, и этоэтот файл загружается после вышеприведенного кода, тогда эти классы не будут учитываться вышеприведенным циклом .each
, и поэтому они не получат include
с DelayedEmails
Альтернативное решение
Если исходить из того, что вы задаете этот вопрос, во избежание включения нескольких модулей во все ваши классы ...
module DelayedTasks
module Dependencies
def self.included(base)
base.include DelayedEmails
# base.include SomeOtherModule1
# base.include SomeOtherModule2
# ...
end
end
class A
include Dependencies
end
class B
include Dependencies
end
class C
include Dependencies
end
end