diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index 26ed2f11c5730..b55c274fffa11 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -1169,7 +1169,8 @@ def formula_files_by_name name, formula_hash = item # If there's more than one item with the same path: use the longer one to prioritise more specific results. existing_path = hash[name] - new_path = File.join(tap_path, formula_hash["ruby_source_path"]) # Pathname equivalent is slow in a tight loop + # Pathname equivalent is slow in a tight loop + new_path = File.join(tap_path, formula_hash.fetch("ruby_source_path")) hash[name] = Pathname(new_path) if existing_path.nil? || existing_path.to_s.length < new_path.length end end diff --git a/Library/Homebrew/test/formulary_spec.rb b/Library/Homebrew/test/formulary_spec.rb index 33a0355729cb1..07903bbc4af59 100644 --- a/Library/Homebrew/test/formulary_spec.rb +++ b/Library/Homebrew/test/formulary_spec.rb @@ -158,8 +158,6 @@ class Wrong#{described_class.class_s(formula_name)} < Formula context "with installed Formula" do before do - allow(described_class).to receive(:loader_for).and_call_original - # don't try to load/fetch gcc/glibc allow(DevelopmentTools).to receive_messages(needs_libc_formula?: false, needs_compiler_formula?: false) end @@ -329,6 +327,7 @@ def formula_json_contents(extra_items = {}) "run_type" => "immediate", "working_dir" => "/$HOME", }, + "ruby_source_path" => "Formula/#{formula_name}.rb", }.merge(extra_items), } end @@ -378,7 +377,7 @@ def formula_json_contents(extra_items = {}) end before do - allow(described_class).to receive(:loader_for).and_return(described_class::FormulaAPILoader.new(formula_name)) + ENV.delete("HOMEBREW_NO_INSTALL_FROM_API") # don't try to load/fetch gcc/glibc allow(DevelopmentTools).to receive_messages(needs_libc_formula?: false, needs_compiler_formula?: false)