Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Let Action Cable's autoloader ignore the version file
Rails components version files are organized in a particular way. On one hand, ActionCable::VERSION is defined in action_cable/gem_version.rb, but that file does not follow Zeitwerk conventions, so we ignore it. Addtionally, action_cable/gem_version.rb defines ActionCable.gem_version, and we need to eager load it to have that method available for client code. On the other hand, there is also action_cable/version.rb, which loads action_cable/gem_version.rb. That file follows the conventions because by loading it, the expected constant gets defined as a side-effect, but it does so in an unusual indirect way. All in all, the setup that we had technically works, but I setting an autoload for VERSION in ActionCable makes you think too much about the interactions between these two files and the autoloads being triggered by the existing require_relative, which eager loads anyway. I believe this simplification is easier to understand.
- Loading branch information