aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/keg.rb11
-rw-r--r--Library/Homebrew/test/test_keg.rb2
2 files changed, 11 insertions, 2 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 80408f73d..333b66ee4 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -4,6 +4,15 @@ require "formula_lock"
require "ostruct"
class Keg < Pathname
+ class AlreadyLinkedError < RuntimeError
+ def initialize(keg)
+ super <<-EOS.undent
+ Cannot link #{keg.fname}
+ Another version is already linked: #{keg.linked_keg_record.resolved_path}
+ EOS
+ end
+ end
+
class LinkError < RuntimeError
attr_reader :keg, :src, :dst
@@ -169,7 +178,7 @@ class Keg < Pathname
end
def link mode=OpenStruct.new
- raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.resolved_path}" if linked_keg_record.directory?
+ raise AlreadyLinkedError.new(self) if linked_keg_record.directory?
ObserverPathnameExtension.reset_counts!
diff --git a/Library/Homebrew/test/test_keg.rb b/Library/Homebrew/test/test_keg.rb
index 0da3a8762..828ad1e43 100644
--- a/Library/Homebrew/test/test_keg.rb
+++ b/Library/Homebrew/test/test_keg.rb
@@ -49,7 +49,7 @@ class LinkTests < Test::Unit::TestCase
def test_linking_fails_when_already_linked
@keg.link
- assert_raise RuntimeError do
+ assert_raise Keg::AlreadyLinkedError do
shutup { @keg.link }
end
end