|
|
|
@ -76,6 +76,12 @@ ParseResult extract(final List<String> args) {
|
|
|
|
|
result = stageResult.result;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case ParsingStage.path:
|
|
|
|
|
final stageResult = _onPathStage(arg, result, currentStage);
|
|
|
|
|
currentStage = stageResult.stage;
|
|
|
|
|
result = stageResult.result;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
console.error('not implemented yet');
|
|
|
|
|
break;
|
|
|
|
@ -137,6 +143,28 @@ StageResult _onDomainStage(
|
|
|
|
|
return StageResult(result: result, stage: currentStage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String _cutTrailingDash(final String path) =>
|
|
|
|
|
path.endsWith('/') ? path.substring(0, path.length - 1) : path;
|
|
|
|
|
|
|
|
|
|
StageResult _onPathStage(
|
|
|
|
|
final String arg,
|
|
|
|
|
final ParseResult previousResult,
|
|
|
|
|
final ParsingStage previousStage,
|
|
|
|
|
) {
|
|
|
|
|
ParsingStage currentStage = previousStage;
|
|
|
|
|
ParseResult result = previousResult;
|
|
|
|
|
|
|
|
|
|
currentStage = ParsingStage.nothing;
|
|
|
|
|
result = ParseResult(
|
|
|
|
|
localPath: _cutTrailingDash(arg),
|
|
|
|
|
action: previousResult.action,
|
|
|
|
|
success: true,
|
|
|
|
|
object: previousResult.object,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return StageResult(result: result, stage: currentStage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StageResult _onNothingStage(
|
|
|
|
|
final String arg,
|
|
|
|
|
final ParseResult previousResult,
|
|
|
|
|