| Index: third_party/pkg/route_hierarchical/lib/url_template.dart
|
| diff --git a/third_party/pkg/route_hierarchical/lib/url_template.dart b/third_party/pkg/route_hierarchical/lib/url_template.dart
|
| deleted file mode 100644
|
| index 069aeb79465314f40f35e350e291c70269973b30..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/route_hierarchical/lib/url_template.dart
|
| +++ /dev/null
|
| @@ -1,93 +0,0 @@
|
| -library url_template;
|
| -
|
| -import 'url_matcher.dart';
|
| -
|
| -final _specialChars = new RegExp(r'[\\()$^.+[\]{}|]');
|
| -final _paramPattern = r'([^/?]+)';
|
| -
|
| -/**
|
| - * A reversible URL template class that can match/parse and reverse URL
|
| - * templates like: /foo/:bar/baz
|
| - */
|
| -class UrlTemplate implements UrlMatcher {
|
| - List<String> _fields;
|
| - RegExp _pattern;
|
| - String _strPattern;
|
| - List _chunks;
|
| -
|
| - String toString() => '$_pattern';
|
| -
|
| - int compareTo(UrlMatcher other) {
|
| - final String tmpParamPattern = '\t';
|
| - if (other is UrlTemplate) {
|
| - String thisPattern = _strPattern.replaceAll(_paramPattern, tmpParamPattern);
|
| - String otherPattern = other._strPattern.replaceAll(_paramPattern, tmpParamPattern);
|
| - List<String> thisPatternParts = thisPattern.split('/');
|
| - List<String> otherPatternParts = otherPattern.split('/');
|
| - if (thisPatternParts.length == otherPatternParts.length) {
|
| - for (int i = 0; i < thisPatternParts.length; i++) {
|
| - String thisPart = thisPatternParts[i];
|
| - String otherPart = otherPatternParts[i];
|
| - if (thisPart == tmpParamPattern && otherPart != tmpParamPattern) {
|
| - return 1;
|
| - } else if (thisPart != tmpParamPattern && otherPart == tmpParamPattern) {
|
| - return -1;
|
| - }
|
| - }
|
| - return otherPattern.compareTo(thisPattern);
|
| - } else {
|
| - return otherPatternParts.length - thisPatternParts.length;
|
| - }
|
| - } else {
|
| - return 0;
|
| - }
|
| - }
|
| -
|
| - UrlTemplate(String template) {
|
| - _compileTemplate(template);
|
| - }
|
| -
|
| - void _compileTemplate(String template) {
|
| - template = template.
|
| - replaceAllMapped(_specialChars, (m) => r'\' + m.group(0));
|
| - _fields = <String>[];
|
| - _chunks = [];
|
| - var exp = new RegExp(r':(\w+)');
|
| - StringBuffer sb = new StringBuffer('^');
|
| - int start = 0;
|
| - exp.allMatches(template).forEach((Match m) {
|
| - var paramName = m.group(1);
|
| - var txt = template.substring(start, m.start);
|
| - _fields.add(paramName);
|
| - _chunks.add(txt);
|
| - _chunks.add((Map params) => params != null ? params[paramName] : null);
|
| - sb.write(txt);
|
| - sb.write(_paramPattern);
|
| - start = m.end;
|
| - });
|
| - if (start != template.length) {
|
| - var txt = template.substring(start, template.length);
|
| - sb.write(txt);
|
| - _chunks.add(txt);
|
| - }
|
| - _strPattern = sb.toString();
|
| - _pattern = new RegExp(_strPattern);
|
| - }
|
| -
|
| - UrlMatch match(String url) {
|
| - var matches = _pattern.allMatches(url);
|
| - if (matches.isEmpty) return null;
|
| - var parameters = new Map();
|
| - Match match = matches.first;
|
| - for (var i = 0; i < match.groupCount; i++) {
|
| - parameters[_fields[i]] = match.group(i + 1);
|
| - }
|
| - var tail = url.substring(match.group(0).length);
|
| - return new UrlMatch(match.group(0), tail, parameters);
|
| - }
|
| -
|
| - String reverse({Map parameters, String tail: ''}) =>
|
| - _chunks.map((c) => c is Function ? c(parameters) : c).join() + tail;
|
| -
|
| - List<String> urlParameterNames() => _fields;
|
| -}
|
|
|