Sha256: 58126d05cd8015d1f887482c5ed6372aef9ae732c60fc0db0615228b706a34e4

Contents?: true

Size: 861 Bytes

Versions: 3

Compression:

Stored size: 861 Bytes

Contents

module UEncode
  class Response
    class BadRequestError < StandardError; end
    class InvalidKeyError < StandardError; end
    class NotActiveError  < StandardError; end
    class ServerError     < StandardError; end
    class UnknownError    < StandardError; end

    ATTRIBUTES = [:code, :message, :jobid, :userdata]

    include AttrSetting    

    def initialize(options)
      check_response_code options[:code], options[:message]
      super
    end

    private
    def check_response_code(code, message)
      return if code == 'Ok'
      case code
      when 'BadRequest'; raise BadRequestError, message
      when 'InvalidKey'; raise InvalidKeyError, message
      when 'NotActive'; raise NotActiveError, message
      when 'ServerError'; raise ServerError, message
      else raise UnknownError, "#{code}: #{message}"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
uencode-0.0.3 lib/uencode/response.rb
uencode-0.0.2 lib/uencode/response.rb
uencode-0.0.1 lib/uencode/response.rb