Sha256: 39ca1da8041a0282db204195f543af1266f0ae2d4170fea0fca3ed3803d8a489
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
module Lurker class Endpoint class ResponseCodes RESPONSE_CODES = 'responseCodes'.freeze DESCRIPTION = 'description'.freeze SUCCESSFUL = 'successful'.freeze STATUS = 'status'.freeze def initialize(schema) @schema = schema @schema[RESPONSE_CODES] ||= [] end def add(status_code, successful, options = {}) response_code = { STATUS => status_code, SUCCESSFUL => successful, DESCRIPTION => options.fetch(:description, '') } Lurker::SchemaModifier.append!(@schema[RESPONSE_CODES], response_code) end def validate!(status_code, successful) return if exists?(status_code, successful) raise Lurker::UndocumentedResponseCode, 'Undocumented response: %s, successful: %s' % [ status_code, successful ] end def exists?(status_code, successful) !!@schema[RESPONSE_CODES].detect do |response_code| response_code[SUCCESSFUL] == successful && (response_code[STATUS] == status_code || # 200 response_code[STATUS].to_i == status_code) # "200 OK" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lurker-0.6.2 | lib/lurker/endpoint/response_codes.rb |