lib/tapioca/dsl/compilers/active_support_concern.rb in tapioca-0.15.1 vs lib/tapioca/dsl/compilers/active_support_concern.rb in tapioca-0.16.0

- old
+ new

@@ -64,21 +64,20 @@ class << self extend T::Sig sig { override.returns(T::Enumerable[Module]) } def gather_constants - # Find all Modules that are: all_modules.select do |mod| - # named (i.e. not anonymous) - name_of(mod) && - # not singleton classes + name_of(mod) && # i.e. not anonymous !mod.singleton_class? && - # extend ActiveSupport::Concern, and - mod.singleton_class < ActiveSupport::Concern && - # have dependencies (i.e. include another concern) - !dependencies_of(mod).empty? + ActiveSupport::Concern > mod.singleton_class && + has_dependencies?(mod) end end + + # Returns true when `mod` includes other concerns + sig { params(mod: Module).returns(T::Boolean) } + def has_dependencies?(mod) = dependencies_of(mod).any? sig { params(concern: Module).returns(T::Array[Module]) } def dependencies_of(concern) concern.instance_variable_get(:@_dependencies) || [] end