Use classes instead of strings for exceptions
This commit is contained in:
parent
dbd7f1c855
commit
560408d01b
@ -2,6 +2,24 @@ class UsageError <RuntimeError; end
|
|||||||
class FormulaUnspecifiedError <UsageError; end
|
class FormulaUnspecifiedError <UsageError; end
|
||||||
class KegUnspecifiedError <UsageError; end
|
class KegUnspecifiedError <UsageError; end
|
||||||
|
|
||||||
|
class MultipleVersionsInstalledError <RuntimeError
|
||||||
|
attr :name
|
||||||
|
|
||||||
|
def initialize name
|
||||||
|
@name = name
|
||||||
|
super "#{name} has multiple installed versions"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class NoSuchKegError <RuntimeError
|
||||||
|
attr :name
|
||||||
|
|
||||||
|
def initialize name
|
||||||
|
@name = name
|
||||||
|
super "No such keg: #{HOMEBREW_CELLAR}/#{name}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
module HomebrewArgvExtension
|
module HomebrewArgvExtension
|
||||||
def named
|
def named
|
||||||
@named ||= reject{|arg| arg[0..0] == '-'}
|
@named ||= reject{|arg| arg[0..0] == '-'}
|
||||||
@ -24,8 +42,8 @@ module HomebrewArgvExtension
|
|||||||
@kegs ||= downcased_unique_named.collect do |name|
|
@kegs ||= downcased_unique_named.collect do |name|
|
||||||
d = HOMEBREW_CELLAR + Formula.resolve_alias(name)
|
d = HOMEBREW_CELLAR + Formula.resolve_alias(name)
|
||||||
dirs = d.children.select{ |pn| pn.directory? } rescue []
|
dirs = d.children.select{ |pn| pn.directory? } rescue []
|
||||||
raise "No such keg: #{HOMEBREW_CELLAR}/#{name}" if not d.directory? or dirs.length == 0
|
raise NoSuchKegError.new(name) if not d.directory? or dirs.length == 0
|
||||||
raise "#{name} has multiple installed versions" if dirs.length > 1
|
raise MultipleVersionsInstalledError.new(name) if dirs.length > 1
|
||||||
Keg.new dirs.first
|
Keg.new dirs.first
|
||||||
end
|
end
|
||||||
raise KegUnspecifiedError if @kegs.empty?
|
raise KegUnspecifiedError if @kegs.empty?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user