| 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.file; | 5 library descriptor.file; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import '../../../../../pkg/pathos/lib/path.dart' as path; | 10 import '../../../../../pkg/pathos/lib/path.dart' as path; |
| 11 | 11 |
| 12 import '../../descriptor.dart'; | 12 import '../../descriptor.dart'; |
| 13 import '../../scheduled_test.dart'; | 13 import '../../scheduled_test.dart'; |
| 14 import '../utils.dart'; | 14 import '../utils.dart'; |
| 15 | 15 |
| 16 /// A path builder to ensure that [load] uses POSIX paths. | 16 /// A path builder to ensure that [load] uses POSIX paths. |
| 17 final path.Builder _path = new path.Builder(style: path.Style.posix); | 17 final path.Builder _path = new path.Builder(style: path.Style.posix); |
| 18 | 18 |
| 19 /// A descriptor describing a directory containing multiple files. | 19 /// A descriptor describing a directory containing multiple files. |
| 20 class DirectoryDescriptor extends Descriptor { | 20 class DirectoryDescriptor extends Descriptor { |
| 21 /// The entries contained within this directory. | 21 /// The entries contained within this directory. This is intentionally |
| 22 final Iterable<Descriptor> contents; | 22 /// mutable. |
| 23 final List<Descriptor> contents; |
| 23 | 24 |
| 24 DirectoryDescriptor(String name, this.contents) | 25 DirectoryDescriptor(String name, Iterable<Descriptor> contents) |
| 25 : super(name); | 26 : super(name), |
| 27 contents = contents.toList(); |
| 26 | 28 |
| 27 Future create([String parent]) => schedule(() { | 29 Future create([String parent]) => schedule(() { |
| 28 if (parent == null) parent = defaultRoot; | 30 if (parent == null) parent = defaultRoot; |
| 29 var fullPath = path.join(parent, name); | 31 var fullPath = path.join(parent, name); |
| 30 return new Directory(fullPath).create(recursive: true).then((_) { | 32 return new Directory(fullPath).create(recursive: true).then((_) { |
| 31 return Future.wait( | 33 return Future.wait( |
| 32 contents.map((entry) => entry.create(fullPath)).toList()); | 34 contents.map((entry) => entry.create(fullPath)).toList()); |
| 33 }); | 35 }); |
| 34 }, 'creating directory:\n${describe()}'); | 36 }, 'creating directory:\n${describe()}'); |
| 35 | 37 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 .replaceFirst('| ', '|-- '); | 91 .replaceFirst('| ', '|-- '); |
| 90 buffer.writeln(entryString); | 92 buffer.writeln(entryString); |
| 91 } | 93 } |
| 92 | 94 |
| 93 var lastEntryString = prefixLines(contents.last.describe(), prefix: ' ') | 95 var lastEntryString = prefixLines(contents.last.describe(), prefix: ' ') |
| 94 .replaceFirst(' ', "'-- "); | 96 .replaceFirst(' ', "'-- "); |
| 95 buffer.write(lastEntryString); | 97 buffer.write(lastEntryString); |
| 96 return buffer.toString(); | 98 return buffer.toString(); |
| 97 } | 99 } |
| 98 } | 100 } |
| OLD | NEW |