aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-04-05 22:03:33 -0500
committerJack Nagel2014-04-05 22:03:40 -0500
commit9f4f8546253398e082bf14f44d604a85908574b6 (patch)
treed6be235638ea07d81f381658d21d398e55f6f6a0 /Library
parent34e2c5601dc33607e516557f538a2750d8215e46 (diff)
downloadhomebrew-9f4f8546253398e082bf14f44d604a85908574b6.tar.bz2
Simplify tap formula loading
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formulary.rb29
1 files changed, 10 insertions, 19 deletions
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index 5f73ebe6a..c57013900 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -147,14 +147,19 @@ class Formulary
# Loads tapped formulae.
class TapLoader < FormulaLoader
+ attr_reader :tapped_name
+
def initialize tapped_name
- super tapped_name, Pathname.new(tapped_name)
+ @tapped_name = tapped_name
+ user, repo, name = tapped_name.split("/", 3).map(&:downcase)
+ path = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{user}-#{repo}/#{name}.rb")
+ super name, path
end
def get_formula
super
- rescue FormulaUnavailableError => e
- raise TapFormulaUnavailableError.new(e.name)
+ rescue FormulaUnavailableError
+ raise TapFormulaUnavailableError.new(tapped_name)
end
end
@@ -174,22 +179,8 @@ class Formulary
return FromUrlLoader.new(ref)
when Pathname::BOTTLE_EXTNAME_RX
return BottleLoader.new(ref)
- end
-
- if ref =~ HOMEBREW_TAP_FORMULA_REGEX
- tap_name = "#$1-#$2".downcase
- tapd = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{tap_name}")
-
- if tapd.directory?
- tapd.find_formula do |relative_pathname|
- path = "#{tapd}/#{relative_pathname}"
- if relative_pathname.stem.to_s == $3
- return FromPathLoader.new(path)
- end
- end
- else
- return TapLoader.new(ref)
- end
+ when HOMEBREW_TAP_FORMULA_REGEX
+ return TapLoader.new(ref)
end
if ref.include?("/") || File.extname(ref) == ".rb"