diff options
| author | Jack Nagel | 2014-04-21 09:40:24 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-04-21 12:43:06 -0500 |
| commit | 190fbf732347439de10484474e8aa0bb0d9b5df6 (patch) | |
| tree | 2a3f2d11c5df73725b519f3397b7f16d91cff781 | |
| parent | 69a0d7cafd236e548c4dd3c5e95cffc7f5ed9321 (diff) | |
| download | homebrew-190fbf732347439de10484474e8aa0bb0d9b5df6.tar.bz2 | |
Raise AlreadyLinkedError when a keg is already linked
| -rw-r--r-- | Library/Homebrew/keg.rb | 11 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_keg.rb | 2 |
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 |
