Class: RuboCop::Cop::Guardrails::StandardAppDirectories
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Guardrails::StandardAppDirectories
- Defined in:
- lib/rubocop/cop/guardrails/standard_app_directories.rb
Overview
Prevents non-standard directories under ‘app/`.
Rails provides a conventional directory structure. Custom directories like ‘app/services/`, `app/decorators/`, or `app/form_objects/` scatter domain logic that belongs in `app/models/`.
The ‘AllowedDirectories` option lists the standard Rails directories. Add to it if your project has a legitimate need for additional directories.
Constant Summary collapse
- MSG =
'Non-standard app directory `%<directory>s`. Keep domain logic in `app/models/`.'- DEFAULT_DIRECTORIES =
%w[ channels controllers helpers jobs mailers mailboxes models views ].to_set.freeze
Instance Method Summary collapse
Instance Method Details
#on_class(node) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/rubocop/cop/guardrails/standard_app_directories.rb', line 49 def on_class(node) dir = app_subdirectory if dir && !allowed_directories.include?(dir) add_offense(node.loc.name, message: format(MSG, directory: dir)) end end |