Sha256: cffaadda1507c0c9a7cba7170a9adc2bd87e89dbb3afe8101693ee311b88caff

Contents?: true

Size: 1.77 KB

Versions: 21

Compression:

Stored size: 1.77 KB

Contents

module Hobo
  class Error < StandardError
    attr_reader :exit_code
  end

  class RubyVersionError < Error
    def initialize
      super("Ruby 1.9+ is required to run hobo")
    end
  end

  class MissingDependencies < Error
    def initialize deps
      deps.map! { |dep| " - #{dep}"}
      super("Hobo requires the following commands to be available on your path:\n\n" + deps.join("\n"))
    end
  end

  class InvalidCommandOrOpt < Error
    attr_accessor :command, :cli
    def initialize command, cli = nil
      @command = command
      @cli = cli
      super("Invalid command or option specified: '#{command}'")
    end
  end

  class MissingArgumentsError < Error
    attr_accessor :command, :cli
    def initialize command, args, cli = nil
      @command = command
      @args = args
      @cli = cli
      super("Not enough arguments for #{command}")
    end
  end

  class ExternalCommandError < Error
    attr_accessor :command, :exit_code, :output

    def initialize command, exit_code, output
      @command = command
      @exit_code = exit_code
      @output = output
      super("'#{command}' returned exit code #{exit_code}")
    end
  end

  class UserError < Error
  end

  class ProjectOnlyError < Error
  end

  class NonInteractiveError < Error
    def initialize question
      @question = question
      super("A task requested input from the user but hobo is in non-interactive mode")
    end
  end

  class MissingDependency < Error
    def initialize dep
      @dependency = dep
      super("A tool that hobo depends on could not be detected (#{dep})")
    end
  end

  class HostCheckError < Error
    attr_accessor :summary, :advice
    def initialize summary, advice
      @summary = summary
      @advice = advice
      super("Host check failed: #{summary}")
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
hobo-inviqa-0.0.15 lib/hobo/errors.rb
hobo-inviqa-0.0.14 lib/hobo/errors.rb
hobo-inviqa-0.0.13 lib/hobo/errors.rb
hobo-inviqa-0.0.11 lib/hobo/errors.rb
hobo-inviqa-0.0.10 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc11 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc10 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc9 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc8 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc7 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc6 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc4 lib/hobo/errors.rb
hobo-inviqa-0.0.10.pre.rc2 lib/hobo/errors.rb
hobo-inviqa-0.0.9 lib/hobo/errors.rb
hobo-inviqa-0.0.9.pre.rc2 lib/hobo/errors.rb
hobo-inviqa-0.0.9.pre.rc1 lib/hobo/errors.rb
hobo-inviqa-0.0.9.pre.alpha lib/hobo/errors.rb
hobo-inviqa-0.0.8 lib/hobo/errors.rb
hobo-inviqa-0.0.7.pre.rc3 lib/hobo/errors.rb
hobo-inviqa-0.0.7.pre.rc2 lib/hobo/errors.rb