| Index: quiver/lib/src/pattern/glob.dart
|
| diff --git a/quiver/lib/src/pattern/glob.dart b/quiver/lib/src/pattern/glob.dart
|
| deleted file mode 100644
|
| index d8552273927b152672542d47849545a81f81168c..0000000000000000000000000000000000000000
|
| --- a/quiver/lib/src/pattern/glob.dart
|
| +++ /dev/null
|
| @@ -1,76 +0,0 @@
|
| -// Copyright 2013 Google Inc. All Rights Reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -part of quiver.pattern;
|
| -
|
| -// TODO(justin): add more detailed documentation and explain how matching
|
| -// differs or is similar to globs in Python and various shells.
|
| -/**
|
| - * A [Pattern] that matches against filesystem path-like strings with
|
| - * wildcards.
|
| - *
|
| - * The pattern matches strings as follows:
|
| - * * The whole string must match, not a substring
|
| - * * Any non wildcard is matched as a literal
|
| - * * '*' matches one or more characters except '/'
|
| - * * '?' matches exactly one character except '/'
|
| - * * '**' matches one or more characters including '/'
|
| - */
|
| -class Glob implements Pattern {
|
| - final RegExp regex;
|
| - final String pattern;
|
| -
|
| - Glob(String pattern)
|
| - : pattern = pattern,
|
| - regex = _regexpFromGlobPattern(pattern);
|
| -
|
| - Iterable<Match> allMatches(String str, [int start = 0]) =>
|
| - regex.allMatches(str, start);
|
| -
|
| - Match matchAsPrefix(String string, [int start = 0]) =>
|
| - regex.matchAsPrefix(string, start);
|
| -
|
| - bool hasMatch(String str) => regex.hasMatch(str);
|
| -
|
| - String toString() => pattern;
|
| -
|
| - int get hashCode => pattern.hashCode;
|
| -
|
| - bool operator ==(other) => other is Glob && pattern == other.pattern;
|
| -}
|
| -
|
| -RegExp _regexpFromGlobPattern(String pattern) {
|
| - var sb = new StringBuffer();
|
| - sb.write('^');
|
| - var chars = pattern.split('');
|
| - for (var i = 0; i < chars.length; i++) {
|
| - var c = chars[i];
|
| - if (_specialChars.hasMatch(c)) {
|
| - sb.write('\\$c');
|
| - } else if (c == '*') {
|
| - if ((i + 1 < chars.length) && (chars[i + 1] == '*')) {
|
| - sb.write('.*');
|
| - i++;
|
| - } else {
|
| - sb.write('[^/]*');
|
| - }
|
| - } else if (c == '?') {
|
| - sb.write('[^/]');
|
| - } else {
|
| - sb.write(c);
|
| - }
|
| - }
|
| - sb.write(r'$');
|
| - return new RegExp(sb.toString());
|
| -}
|
|
|