class Swarker::Path
Constants
- DEFAULT_SCHEMA
Attributes
name[R]
original_schema[R]
preparsed[R]
preparsed?[R]
schema[R]
Public Class Methods
new(name, original_schema, preparsed = false)
click to toggle source
# File lib/swarker/path.rb, line 9 def initialize(name, original_schema, preparsed = false) @name = name @original_schema = HashWithIndifferentAccess.new(original_schema) @preparsed = preparsed parse_schema end
Public Instance Methods
verb()
click to toggle source
# File lib/swarker/path.rb, line 17 def verb # Lurker schema has only one request verb per file @verb ||= @preparsed ? @schema.keys.first : original_schema[:extensions][:method].downcase end
Private Instance Methods
computed_schema()
click to toggle source
# File lib/swarker/path.rb, line 35 def computed_schema { description: original_schema[:description], tags: [original_schema[:prefix]], parameters: PathParameters.new(original_schema).parameters, responses: responses } end
create_schema()
click to toggle source
# File lib/swarker/path.rb, line 31 def create_schema HashWithIndifferentAccess.new(verb => DEFAULT_SCHEMA.merge(computed_schema)) end
parse_schema()
click to toggle source
# File lib/swarker/path.rb, line 27 def parse_schema @schema = preparsed? ? @original_schema : create_schema end
response_code()
click to toggle source
# File lib/swarker/path.rb, line 53 def response_code # Lurker schema has only one response code per file @original_schema[:responseCodes].first[:status].to_s end
response_schema()
click to toggle source
# File lib/swarker/path.rb, line 58 def response_schema response_schema = @original_schema[:responseParameters].dup response_schema[:items].reject! { |k| k.to_sym == :required } if response_schema[:items] response_schema['$ref'].sub!(%r{.json#/}, '').sub!(%r{(\.\./)+}, '#/') if response_schema['$ref'] response_schema end
responses()
click to toggle source
# File lib/swarker/path.rb, line 44 def responses { response_code => { description: '', schema: response_schema } } end