Class: SwaggerCoverage::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/swagger_cov.rb

Instance Method Summary collapse

Constructor Details

#initialize(output, swagger_docs) ⇒ Parser

Returns a new instance of Parser.



8
9
10
11
12
13
# File 'lib/swagger_cov.rb', line 8

def initialize(output, swagger_docs)
  @output = output
  @swagger_docs = swagger_docs
  @swagger_parser = SwaggerParser.new(@swagger_docs)
  @code_parser = CodeParser.new(output)
end

Instance Method Details

#check_request_typesObject



15
16
17
18
19
# File 'lib/swagger_cov.rb', line 15

def check_request_types
  code_request_types = @code_parser.http_requests
  swagger_request_types = @swagger_parser.http_requests
  request_types_diff = compare_routes(code_request_types, swagger_request_types)
end

#check_routes(api = false) ⇒ Object



21
22
23
24
25
# File 'lib/swagger_cov.rb', line 21

def check_routes(api = false)
  code_endpoints = @code_parser.api_endpoints(@output, api)
  swagger_endpoints = @swagger_parser.api_endpoints
  routes_diff = compare_routes(code_endpoints, swagger_endpoints)
end

#compare_routes(code_routes, swagger_routes) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/swagger_cov.rb', line 27

def compare_routes(code_routes, swagger_routes)
  endpoints_match = code_routes.eql?(swagger_routes)
  endpoint_diff = []
  if !endpoints_match
    if code_routes.size() > swagger_routes.size()
      endpoint_diff = code_routes - swagger_routes
      #raise "DOCUMENTATION DOES NOT CONTAIN THE FOLLOWING ROUTES FROM SOURCE: #{endpoint_diff}"
    else
      endpoint_diff = swagger_routes - code_routes
      #raise "SOURCE CODE CONTAINS THE FOLLOWING ROUTES NOT FOUND IN DOCUMENTATION: #{endpoint_diff}"
    end
  end
  endpoint_diff
end