A common pattern in Ruby is to to require all files in a specific diretory, using something like
Dir.glob(Rails.root.join('lib/ext/**/*.rb')).each do |filename|
require filename
end
However, this causes files to be required in an order determined by the file system. Since load order can be important, this may lead to different behavior on different machines which are hard to debug.
Simply add a .sort
:
Dir.glob(Rails.root.join('lib/ext/**/*.rb')).sort.each do |filename|
require filename
end
Ruby 3
Ruby 3 Dir class sorts per default. You can opt out like this:
Dir.glob(some_globbed_path, sort: false)
Posted by Tobias Kraze to makandra dev (2017-10-05 09:17)