Skip to content

Annotate gem does not support Rails autoloader collapsed directories #969

Open
@bazay

Description

@bazay

Annotate gem does not support Rails autoloader collapsed directories i.e.

pry(AnnotateModels)> Rails.autoloaders.main
=> #<Zeitwerk::Loader:0x00007f6305898b58
 @autoloaded_dirs=[],
 @autoloads={},
 @collapse_dirs=
  #<Set: {"/home/developer/my_app/app/components/my_namespace/models"}>,
 @collapse_glob_patterns=#<Set: {/home/developer/my_app/app/components/*/models", "/home/developer/my_app/app/components/my_namespace/jobs"}>,
 @eager_load_exclusions=#<Set: {}>,
 @eager_loaded=true,
 @ignored_glob_patterns=
  #<Set: {"/home/developer/my_app/lib/rails",
   "/home/developer/my_app/lib/patches",
   "//home/developer/my_app/lib/rails/generators/job",
...
pry(AnnotateModels)> Rails.autoloaders.main.collapsed_dirs
=> #<Set: {"/home/developer/my_app/app/components/my_namespace/models"}>

In config/application.rb:

Rails.autoloaders.main.collapse("app/components/*/models")

I've obfuscated the model names and namespace, but the end result is still the same.

Commands

$ bundle exec annotate
Unable to annotate app/components/my_namespace/models/my_model.rb: file doesn't contain a valid model class
Unable to annotate app/components/my_namespace/models/my_second_model.rb: file doesn't contain a valid model class
Unable to annotate app/components/my_namespace/models/my_third_model.rb: file doesn't contain a valid model class
$

Version

  • annotate (3.2.0 96831c1)
  • rails (7.0.3.1)
  • ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions