Raise AlreadyLinkedError when a keg is already linked
This commit is contained in:
parent
b2e8c4e79a
commit
6b5e92ac47
@ -4,6 +4,15 @@ require "formula_lock"
|
|||||||
require "ostruct"
|
require "ostruct"
|
||||||
|
|
||||||
class Keg < Pathname
|
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
|
class LinkError < RuntimeError
|
||||||
attr_reader :keg, :src, :dst
|
attr_reader :keg, :src, :dst
|
||||||
|
|
||||||
@ -169,7 +178,7 @@ class Keg < Pathname
|
|||||||
end
|
end
|
||||||
|
|
||||||
def link mode=OpenStruct.new
|
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!
|
ObserverPathnameExtension.reset_counts!
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,7 @@ class LinkTests < Test::Unit::TestCase
|
|||||||
|
|
||||||
def test_linking_fails_when_already_linked
|
def test_linking_fails_when_already_linked
|
||||||
@keg.link
|
@keg.link
|
||||||
assert_raise RuntimeError do
|
assert_raise Keg::AlreadyLinkedError do
|
||||||
shutup { @keg.link }
|
shutup { @keg.link }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user