| 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 barback.asset; | 5 library barback.asset; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert' show Encoding, UTF8; | 8 import 'dart:convert'; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 import 'dart:utf'; | |
| 11 | 10 |
| 12 import 'asset_id.dart'; | 11 import 'asset_id.dart'; |
| 13 import 'utils.dart'; | 12 import 'utils.dart'; |
| 14 | 13 |
| 15 /// A blob of content. | 14 /// A blob of content. |
| 16 /// | 15 /// |
| 17 /// Assets may come from the file system, or as the output of a [Transformer]. | 16 /// Assets may come from the file system, or as the output of a [Transformer]. |
| 18 /// They are identified by [AssetId]. | 17 /// They are identified by [AssetId]. |
| 19 abstract class Asset { | 18 abstract class Asset { |
| 20 /// The ID for this asset. | 19 /// The ID for this asset. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 class _StringAsset extends Asset { | 110 class _StringAsset extends Asset { |
| 112 final String _contents; | 111 final String _contents; |
| 113 | 112 |
| 114 _StringAsset(AssetId id, this._contents) | 113 _StringAsset(AssetId id, this._contents) |
| 115 : super(id); | 114 : super(id); |
| 116 | 115 |
| 117 Future<String> readAsString({Encoding encoding}) => | 116 Future<String> readAsString({Encoding encoding}) => |
| 118 new Future.value(_contents); | 117 new Future.value(_contents); |
| 119 | 118 |
| 120 Stream<List<int>> read() => | 119 Stream<List<int>> read() => |
| 121 new Future<List<int>>.value(encodeUtf8(_contents)).asStream(); | 120 new Future<List<int>>.value(UTF8.encode(_contents)).asStream(); |
| 122 | 121 |
| 123 String toString() { | 122 String toString() { |
| 124 // Don't show the whole string if it's long. | 123 // Don't show the whole string if it's long. |
| 125 var contents = _contents; | 124 var contents = _contents; |
| 126 if (contents.length > 40) { | 125 if (contents.length > 40) { |
| 127 contents = contents.substring(0, 20) + " ... " + | 126 contents = contents.substring(0, 20) + " ... " + |
| 128 contents.substring(contents.length - 20); | 127 contents.substring(contents.length - 20); |
| 129 } | 128 } |
| 130 | 129 |
| 131 contents = _escape(contents); | 130 contents = _escape(contents); |
| 132 return 'String "$contents"'; | 131 return 'String "$contents"'; |
| 133 } | 132 } |
| 134 | 133 |
| 135 String _escape(String string) { | 134 String _escape(String string) { |
| 136 return string | 135 return string |
| 137 .replaceAll("\"", r'\"') | 136 .replaceAll("\"", r'\"') |
| 138 .replaceAll("\n", r"\n") | 137 .replaceAll("\n", r"\n") |
| 139 .replaceAll("\r", r"\r") | 138 .replaceAll("\r", r"\r") |
| 140 .replaceAll("\t", r"\t"); | 139 .replaceAll("\t", r"\t"); |
| 141 } | 140 } |
| 142 } | 141 } |
| OLD | NEW |