class Sinatra::DocDsl::DocEntry

Attributes

desc[RW]
headers[RW]
params[RW]
paths[RW]
query_params[RW]
sample_request[RW]
sample_response[RW]
status_codes[RW]
the_payload[RW]
the_response[RW]

Public Class Methods

new(description, &block) click to toggle source
# File lib/docdsl.rb, line 284
def initialize(description, &block)
  @paths=[]
  @desc=description
  @params={}
  @query_params={}
  @headers={}
  @the_payload=nil
  @sample_request=nil
  @the_response=nil
  @sample_response=nil
  @status_codes={}
  if(block)
    if block.arity == 1
      block(self)
    else
      instance_eval(&block)
    end
  end
end

Public Instance Methods

<<(path) click to toggle source
# File lib/docdsl.rb, line 304
def <<(path)
  self.paths << path
end
describe(desc) click to toggle source
# File lib/docdsl.rb, line 312
def describe(desc)
  @desc=desc
end
header(name,desc) click to toggle source
# File lib/docdsl.rb, line 330
def header(name,desc)
  @headers[name]=desc
end
json() click to toggle source
# File lib/docdsl.rb, line 390
def json
  {
      :description=>@desc,
      :url_parameters=>@params,
      :paths=>@paths,
      :query_parameters=>@query_params,
      :headers=>@headers,
      :payload=>@the_payload,
      :sample_request=>@sample_request,
      :response=>@the_response,
      :status_codes=>@status_codes,
      :sample_response=>@sample_response
  }
end
param(name,desc) click to toggle source
# File lib/docdsl.rb, line 326
def param(name,desc)
  @params[name]=desc
end
payload(desc, example=nil) click to toggle source
# File lib/docdsl.rb, line 316
def payload(desc, example=nil)
  @the_payload=desc
  @sample_request=example
end
query_param(name,desc) click to toggle source
# File lib/docdsl.rb, line 334
def query_param(name,desc)
  @query_params[name]=desc
end
response(desc,example=nil) click to toggle source
# File lib/docdsl.rb, line 321
def response(desc,example=nil)
  @the_response=desc
  @sample_response=example
end
status(code,meaning=nil) click to toggle source
# File lib/docdsl.rb, line 338
def status(code,meaning=nil)
  official_meaning=status_codes_map[code]
  if meaning
    @status_codes[code]="#{official_meaning} - #{meaning}"
  else
    @status_codes[code]=official_meaning
  end
end
status_codes_map() click to toggle source
# File lib/docdsl.rb, line 347
def status_codes_map
  {
    100=> 'Continue',
    101=> 'Switching Protocols',
    102=> 'Processing',
    200=> 'OK',
    201=> 'Created',
    202=> 'Accepted',
    203=> 'Non Authoritative Information',
    204=> 'No Content',
    205=> 'Reset Content',
    206=> 'Partial Content',
    207=> 'Multi-Status',
    300=> 'Mutliple Choices',
    301=> 'Moved Permanently',
    302=> 'Moved Temporarily',
    303=> 'See Other',
    304=> 'Not Modified',
    305=> 'Use Proxy',
    307=> 'Temporary Redirect',
    400=> 'Bad Request',
    401=> 'Unauthorized',
    402=> 'Payment Required',
    403=> 'Forbidden',
    404=> 'Not Found',
    405=> 'Method Not Allowed',
    406=> 'Not Acceptable',
    407=> 'Proxy Authentication Required',
    408=> 'Request Timeout',
    409=> 'Conflict',
    410=> 'Gone',
    411=> 'Length Required',
    412=> 'Precondition Failed',
    413=> 'Request Entity Too Large',
    414=> 'Request-URI Too Long',
    415=> 'Unsupported Media Type',
    416=> 'Requested Range Not Satisfiable',
    417=> 'Expectation Failed',
    500=> 'Internal Server Error',
    503=> 'Temporarily Unavailable'
  }
end
to_s() click to toggle source
# File lib/docdsl.rb, line 308
def to_s
  self.inspect
end