parseURLSegment method
Try parse URLSegment
Implementation
bool parseURLSegment(List<String> urlSegments) {
// Check is empty
if (urlSegments.isEmpty && pathSegments.isEmpty) {
isActive = true;
return true;
}
// Check Full Match
if (this.routerMatch == RouterMatch.Full &&
urlSegments.length != pathSegments.length) return false;
// urlSegment >= pathSegment, skip if not
if (urlSegments.length < pathSegments.length) return false;
this.arguments = {};
this.localSegments = [];
for (int i = 0; i < pathSegments.length; i++) {
String urlSegment = urlSegments[i].toString();
String pathSegment = pathSegments[i].toString();
if (localSegments.length == i) {
if (urlSegment == pathSegment) {
this.localSegments.add(pathSegment);
} else {
// Check segment start with ':' is argument
// Ex. /home/:id
if (checkArgument(pathSegment)) {
this.isArgs = true;
this.setArgument(pathSegment, urlSegment);
this.localSegments.add(urlSegment);
}
}
}
}
if (this.localSegments.isNotEmpty) {
this.isActive = localSegments.length == urlSegments.length;
this.isParent = localSegments.length < urlSegments.length;
return true;
}
return false;
}