Sha256: be04b4cdedba5f57f19b6678d90aabcf2980c3744ba0c2fe1919edcb2812609a

Contents?: true

Size: 818 Bytes

Versions: 111

Compression:

Stored size: 818 Bytes

Contents

require 'travis/client'

module Travis
  module Client
    class Error < StandardError
    end

    class SSLError < Error
    end

    class NotFound < Error
    end

    class NotLoggedIn < Error
    end

    class ValidationFailed < Error
      attr_reader :errors

      def initialize(message = nil, *args)
        message = parse_message(message) if message
        super(message, *args)
      end

      def parse_message(message)
        response   = JSON.load(message)
        message    = response['message'].to_s
        if @errors = response['errors'] and @errors.any?
          readable = @errors.map { |e| "#{e['field']}: #{e['code'].gsub('_', ' ')}" }
          message += " (#{readable.join(', ')})"
        end
        message
      rescue JSON::ParserError
        message
      end
    end
  end
end

Version data entries

111 entries across 111 versions & 3 rubygems

Version Path
travis-1.8.2.travis.722.4 lib/travis/client/error.rb
travis-1.8.2.travis.719.4 lib/travis/client/error.rb
travis-1.8.1 lib/travis/client/error.rb
travis-1.8.1.travis.717.4 lib/travis/client/error.rb
travis-1.8.1.travis.713.4 lib/travis/client/error.rb
travis-1.8.1.travis.705.5 lib/travis/client/error.rb
travis-1.8.1.travis.704.5 lib/travis/client/error.rb
travis-1.8.1.travis.699.5 lib/travis/client/error.rb
travis-1.8.1.travis.697.5 lib/travis/client/error.rb
travis-1.8.1.travis.696.5 lib/travis/client/error.rb
travis-1.8.1.travis.693.5 lib/travis/client/error.rb
travis-1.8.1.travis.692.5 lib/travis/client/error.rb
travis-1.8.1.travis.689.5 lib/travis/client/error.rb
travis-1.8.0 lib/travis/client/error.rb
travis-1.7.8.travis.688.5 lib/travis/client/error.rb
travis-1.7.8.travis.687.5 lib/travis/client/error.rb
travis-1.7.8.travis.684.5 lib/travis/client/error.rb
travis-1.7.7 lib/travis/client/error.rb
travis-1.7.7.travis.683.5 lib/travis/client/error.rb
travis-1.7.7.travis.681.5 lib/travis/client/error.rb