class Swagcov::Coverage
def report
def report Rails.application.routes.routes.each do |route| path = route.path.spec.to_s.sub(/\(\.:format\)$/, "") if ignore_path?(path) @ignored += 1 @routes_ignored << { verb: route.verb, path: path, status: "ignored" } next end next if only_path_mismatch?(path) @total += 1 regex = Regexp.new("#{path.gsub(%r{:[^/]+}, '\\{[^/]+\\}')}(\\.[^/]+)?$") matching_keys = docs_paths.keys.select { |k| regex.match?(k) } if (doc = docs_paths.dig(matching_keys.first, route.verb.downcase)) @covered += 1 @routes_covered << { verb: route.verb, path: path, status: doc["responses"].keys.map(&:to_s).sort.join(" ") } else @routes_not_covered << { verb: route.verb, path: path, status: "none" } end end routes_output(@routes_covered, "green") routes_output(@routes_ignored, "yellow") routes_output(@routes_not_covered, "red") final_output exit @total - @covered end