homebrew-cask-versions/lib/cask/exceptions.rb
2014-06-14 20:19:59 -04:00

86 lines
1.4 KiB
Ruby

class CaskError < RuntimeError; end
class CaskNotInstalledError < CaskError
attr_reader :cask
def initialize cask
@cask = cask
end
def to_s
"#{cask} is not installed"
end
end
class CaskUnavailableError < CaskError
attr_reader :name
def initialize name
@name = name
end
def to_s
"No available cask for #{name}"
end
end
class CaskAlreadyCreatedError < CaskError
attr_reader :name
def initialize name
@name = name
end
def to_s
"Cask for #{name} already exists. Use `brew cask edit #{name}` to see it."
end
end
class CaskAlreadyInstalledError < CaskError
attr_reader :name
def initialize name
@name = name
end
def to_s
"Cask for #{name} is already installed. Use `--force` to force re-install."
end
end
class CaskCommandFailedError < CaskError
def initialize cmd, output, status
@cmd = cmd
@output = output
@status = status
end
def to_s;
<<-EOS
Command failed to execute!
==> Failed command:
#{@cmd}
==> Output of failed command:
#{@output}
==> Exit status of failed command:
#{@status.inspect}
EOS
end
end
class CaskUnspecifiedError < CaskError
def to_s
"This command requires a cask's name"
end
end
class CaskInvalidError < CaskError
attr_reader :name, :submsg
def initialize(name, *submsg)
@name = name
@submsg = submsg.join(' ')
end
def to_s
"Cask '#{name}' definition is invalid" + (submsg.length > 0 ? ": #{submsg}" : '')
end
end