Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(260)

Side by Side Diff: pkg/path/lib/path.dart

Issue 19851005: Fix static warnings in pkg/path. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// A comprehensive, cross-platform path manipulation library. 5 /// A comprehensive, cross-platform path manipulation library.
6 /// 6 ///
7 /// ## Installing ## 7 /// ## Installing ##
8 /// 8 ///
9 /// Use [pub][] to install this package. Add the following to your 9 /// Use [pub][] to install this package. Add the following to your
10 /// `pubspec.yaml` file. 10 /// `pubspec.yaml` file.
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 750
751 // Remove the root prefix, if any. 751 // Remove the root prefix, if any.
752 var root = style.getRoot(path); 752 var root = style.getRoot(path);
753 var isRootRelative = style.getRelativeRoot(path) != null; 753 var isRootRelative = style.getRelativeRoot(path) != null;
754 if (root != null) path = path.substring(root.length); 754 if (root != null) path = path.substring(root.length);
755 755
756 // Split the parts on path separators. 756 // Split the parts on path separators.
757 var parts = []; 757 var parts = [];
758 var separators = []; 758 var separators = [];
759 759
760 var firstSeparator = style.separatorPattern.firstMatch(path); 760 var firstSeparator = style.separatorPattern.matchAsPrefix(path);
761 if (firstSeparator != null && firstSeparator.start == 0) { 761 if (firstSeparator != null) {
762 separators.add(firstSeparator[0]); 762 separators.add(firstSeparator[0]);
763 path = path.substring(firstSeparator[0].length); 763 path = path.substring(firstSeparator[0].length);
764 } else { 764 } else {
765 separators.add(''); 765 separators.add('');
766 } 766 }
767 767
768 var start = 0; 768 var start = 0;
769 for (var match in style.separatorPattern.allMatches(path)) { 769 for (var match in style.separatorPattern.allMatches(path)) {
770 parts.add(path.substring(start, match.start)); 770 parts.add(path.substring(start, match.start));
771 separators.add(match[0]); 771 separators.add(match[0]);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 /// The [Pattern] that can be used to match the root prefix of a root-relative 832 /// The [Pattern] that can be used to match the root prefix of a root-relative
833 /// path in this style. 833 /// path in this style.
834 /// 834 ///
835 /// This can be null to indicate that this style doesn't support root-relative 835 /// This can be null to indicate that this style doesn't support root-relative
836 /// paths. 836 /// paths.
837 final Pattern relativeRootPattern = null; 837 final Pattern relativeRootPattern = null;
838 838
839 /// Gets the root prefix of [path] if path is absolute. If [path] is relative, 839 /// Gets the root prefix of [path] if path is absolute. If [path] is relative,
840 /// returns `null`. 840 /// returns `null`.
841 String getRoot(String path) { 841 String getRoot(String path) {
842 var match = rootPattern.firstMatch(path); 842 // TODO(rnystrom): Use firstMatch() when #7080 is fixed.
843 if (match != null) return match[0]; 843 var matches = rootPattern.allMatches(path);
844 if (matches.isNotEmpty) return matches.first[0];
844 return getRelativeRoot(path); 845 return getRelativeRoot(path);
845 } 846 }
846 847
847 /// Gets the root prefix of [path] if it's root-relative. 848 /// Gets the root prefix of [path] if it's root-relative.
848 /// 849 ///
849 /// If [path] is relative or absolute and not root-relative, returns `null`. 850 /// If [path] is relative or absolute and not root-relative, returns `null`.
850 String getRelativeRoot(String path) { 851 String getRelativeRoot(String path) {
851 if (relativeRootPattern == null) return null; 852 if (relativeRootPattern == null) return null;
852 var match = relativeRootPattern.firstMatch(path); 853 // TODO(rnystrom): Use firstMatch() when #7080 is fixed.
853 if (match == null) return null; 854 var matches = relativeRootPattern.allMatches(path);
854 return match[0]; 855 if (matches.isEmpty) return null;
856 return matches.first[0];
855 } 857 }
856 858
857 /// Returns the path represented by [uri] in this style. 859 /// Returns the path represented by [uri] in this style.
858 String pathFromUri(Uri uri); 860 String pathFromUri(Uri uri);
859 861
860 /// Returns the URI that represents [path]. 862 /// Returns the URI that represents [path].
861 /// 863 ///
862 /// Pathos will always path an absolute path for [path]. Relative paths are 864 /// Pathos will always path an absolute path for [path]. Relative paths are
863 /// handled automatically by [Builder]. 865 /// handled automatically by [Builder].
864 Uri pathToUri(String path); 866 Uri pathToUri(String path);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 // doesn't count. 1125 // doesn't count.
1124 if (lastDot <= 0) return [file, '']; 1126 if (lastDot <= 0) return [file, ''];
1125 1127
1126 return [file.substring(0, lastDot), file.substring(lastDot)]; 1128 return [file.substring(0, lastDot), file.substring(lastDot)];
1127 } 1129 }
1128 1130
1129 _ParsedPath clone() => new _ParsedPath( 1131 _ParsedPath clone() => new _ParsedPath(
1130 style, root, isRootRelative, 1132 style, root, isRootRelative,
1131 new List.from(parts), new List.from(separators)); 1133 new List.from(parts), new List.from(separators));
1132 } 1134 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698