<?php
namespace Knuckles\Scribe\Tools;
use Illuminate\Routing\Route;
use Illuminate\Support\Str;
class RoutePatternMatcher
{
public static function matches(Route $route, $patterns): bool
{
$routeName = $route->getName();
$routePathWithoutInitialSlash = $route->uri();
$routePathWithInitialSlash = "/$routePathWithoutInitialSlash";
$routeMethods = $route->methods();
if (Str::is($patterns, $routeName)
|| Str::is($patterns, $routePathWithoutInitialSlash)
|| Str::is($patterns, $routePathWithInitialSlash)) {
return true;
}
foreach ($routeMethods as $httpMethod) {
if (Str::is($patterns, "$httpMethod $routePathWithoutInitialSlash")
|| Str::is($patterns, "$httpMethod $routePathWithInitialSlash")) {
return true;
}
}
return false;
}
}