class SwaggerCoverage::Parser
Public Class Methods
new(output, swagger_docs)
click to toggle source
# 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
Public Instance Methods
check_request_types()
click to toggle source
# 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)
click to toggle source
# File lib/swagger_cov.rb, line 21 def check_routes(api = false) code_endpoints = @code_parser.api_endpoints(@output) public_api_endpoints = @code_parser.public_api_endpoints(@output).uniq.sort swagger_endpoints = @swagger_parser.api_endpoints.uniq.sort routes_diff = compare_routes(code_endpoints, swagger_endpoints, public_api_endpoints) end
compare_routes(code_routes, swagger_routes, public_api_routes)
click to toggle source
# File lib/swagger_cov.rb, line 28 def compare_routes(code_routes, swagger_routes, public_api_routes) endpoints_match = code_routes.eql?(swagger_routes) || public_api_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
source_api_routes()
click to toggle source
# File lib/swagger_cov.rb, line 43 def source_api_routes output = @output endpoints = [] @code_parser.parsed_routes(output).each do |route| if route[:route] != nil endpoints << route[:route] if route[:route].include?('/api') end end endpoints.sort end
source_routes()
click to toggle source
# File lib/swagger_cov.rb, line 54 def source_routes output = @output endpoints = [] @code_parser.parsed_routes(ouput) do |route| endpoints << route[:route] if route[:route] != nil end endpoints.sort end
swagger_api_routes()
click to toggle source
# File lib/swagger_cov.rb, line 63 def swagger_api_routes swagger_routes = @swagger_parser.api_endpoints swagger_routes.sort end