aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/exceptions.rb16
-rw-r--r--Library/Homebrew/formulary.rb11
2 files changed, 13 insertions, 14 deletions
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index bad8d2c2d..5b3081767 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -51,17 +51,17 @@ class FormulaUnavailableError < RuntimeError
end
class TapFormulaUnavailableError < FormulaUnavailableError
- attr_reader :user, :repo, :shortname
+ attr_reader :tap
- def initialize name
- super
- @user, @repo, @shortname = name.split("/", 3)
+ def initialize tap, name
+ @tap = tap
+ super "#{tap}/#{name}"
end
- def to_s; <<-EOS.undent
- No available formula for #{shortname} #{dependent_s}
- Please tap it and then try again: brew tap #{user}/#{repo}
- EOS
+ def to_s
+ s = super
+ s += "\nPlease tap it and then try again: brew tap #{tap}" unless tap.installed?
+ s
end
end
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index 72024642c..e5b79972d 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -131,14 +131,13 @@ class Formulary
# Loads tapped formulae.
class TapLoader < FormulaLoader
- attr_reader :tapped_name
+ attr_reader :tap
def initialize tapped_name
- @tapped_name = tapped_name
user, repo, name = tapped_name.split("/", 3).map(&:downcase)
- tap = Tap.new user, repo
- path = tap.formula_files.detect { |file| file.basename(".rb").to_s == name }
- path ||= tap.path/"#{name}.rb"
+ @tap = Tap.new user, repo.sub(/^homebrew-/, "")
+ path = @tap.formula_files.detect { |file| file.basename(".rb").to_s == name }
+ path ||= @tap.path/"#{name}.rb"
super name, path
end
@@ -146,7 +145,7 @@ class Formulary
def get_formula(spec)
super
rescue FormulaUnavailableError => e
- raise TapFormulaUnavailableError, tapped_name, e.backtrace
+ raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace
end
end