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