aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/formula.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 57e5f76de..773b6d746 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -377,20 +377,22 @@ class Formula
else
name = Formula.canonical_name(name)
# If name was a path or mapped to a cached formula
- if name.include? "/"
- require name
+ if name.include? "/"
# require allows filenames to drop the .rb extension, but everything else
# in our codebase will require an exact and fullpath.
name = "#{name}.rb" unless name =~ /\.rb$/
path = Pathname.new(name)
name = path.stem
+
+ require path unless Object.const_defined? self.class_s(name)
+
install_type = :from_path
target_file = path.to_s
else
# For names, map to the path and then require
- require Formula.path(name)
+ require Formula.path(name) unless Object.const_defined? self.class_s(name)
install_type = :from_name
end
end