lib/tapioca/loader.rb in tapioca-0.2.1 vs lib/tapioca/loader.rb in tapioca-0.2.2

- old
+ new

@@ -10,27 +10,36 @@ @gemfile = T.let(gemfile, Tapioca::Gemfile) end sig { params(initialize_file: T.nilable(String), require_file: T.nilable(String)).void } def load_bundle(initialize_file, require_file) - require(initialize_file) if initialize_file && File.exist?(initialize_file) + require_helper(initialize_file) load_rails load_rake require_bundle - require(require_file) if require_file && File.exist?(require_file) + require_helper(require_file) load_rails_engines end private sig { returns(Tapioca::Gemfile) } attr_reader :gemfile + sig { params(file: T.nilable(String)).void } + def require_helper(file) + return unless file + file = File.absolute_path(file) + return unless File.exist?(file) + + require(file) + end + sig { void } def require_bundle gemfile.require end @@ -76,21 +85,25 @@ rails_engines.each do |engine| errored_files = [] engine.config.eager_load_paths.each do |load_path| Dir.glob("#{load_path}/**/*.rb").sort.each do |file| - require(file) - rescue LoadError, StandardError - errored_files << file + begin + require(file) + rescue LoadError, StandardError + errored_files << file + end end end # Try files that have errored one more time # It might have been a load order problem errored_files.each do |file| - require(file) - rescue LoadError, StandardError - nil + begin + require(file) + rescue LoadError, StandardError + nil + end end end end end end