OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library descriptor.pattern; | 5 library descriptor.pattern; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:io'; | 8 import 'dart:io'; |
9 | 9 |
10 import 'package:pathos/path.dart' as path; | 10 import 'package:pathos/path.dart' as path; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 matchingEntries.sort(); | 55 matchingEntries.sort(); |
56 | 56 |
57 if (matchingEntries.isEmpty) { | 57 if (matchingEntries.isEmpty) { |
58 throw "No entry found in '$parent' matching ${_patternDescription}."; | 58 throw "No entry found in '$parent' matching ${_patternDescription}."; |
59 } | 59 } |
60 | 60 |
61 return Future.wait(matchingEntries.map((entry) { | 61 return Future.wait(matchingEntries.map((entry) { |
62 var descriptor = _fn(path.basename(entry)); | 62 var descriptor = _fn(path.basename(entry)); |
63 return descriptor.validateNow(parent).then((_) { | 63 return descriptor.validateNow(parent).then((_) { |
64 return new Pair(null, descriptor.describe()); | 64 return new Pair(null, descriptor.describe()); |
65 }).catchError((e) { | 65 }).catchError((error) { |
66 return new Pair(e.error.toString(), descriptor.describe()); | 66 return new Pair(error.toString(), descriptor.describe()); |
67 }); | 67 }); |
68 })).then((results) { | 68 })).then((results) { |
69 var matches = results.where((result) => result.first == null).toList(); | 69 var matches = results.where((result) => result.first == null).toList(); |
70 // If exactly one entry matching [pattern] validated, we're happy. | 70 // If exactly one entry matching [pattern] validated, we're happy. |
71 if (matches.length == 1) return; | 71 if (matches.length == 1) return; |
72 | 72 |
73 // If more than one entry matching [pattern] validated, that's bad. | 73 // If more than one entry matching [pattern] validated, that's bad. |
74 if (matches.length > 1) { | 74 if (matches.length > 1) { |
75 var resultString = matches.map((result) { | 75 var resultString = matches.map((result) { |
76 return prefixLines(result.last, firstPrefix: '* ', prefix: ' '); | 76 return prefixLines(result.last, firstPrefix: '* ', prefix: ' '); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 | 112 |
113 Future create([String parent]) => new Future.immediateError( | 113 Future create([String parent]) => new Future.immediateError( |
114 new UnsupportedError("Pattern descriptors don't support create().")); | 114 new UnsupportedError("Pattern descriptors don't support create().")); |
115 | 115 |
116 Stream<List<int>> load(String pathToLoad) => errorStream( | 116 Stream<List<int>> load(String pathToLoad) => errorStream( |
117 new UnsupportedError("Pattern descriptors don't support load().")); | 117 new UnsupportedError("Pattern descriptors don't support load().")); |
118 | 118 |
119 Stream<List<int>> read() => errorStream(new UnsupportedError("Pattern " | 119 Stream<List<int>> read() => errorStream(new UnsupportedError("Pattern " |
120 "descriptors don't support read().")); | 120 "descriptors don't support read().")); |
121 } | 121 } |
OLD | NEW |