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

Side by Side Diff: pkg/polymer/lib/src/build/common.dart

Issue 162093002: fix imports link rel=stylesheet (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: trying upload again Created 6 years, 10 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
OLDNEW
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 /** Common methods used by transfomers. */ 5 /** Common methods used by transfomers. */
6 library polymer.src.build.common; 6 library polymer.src.build.common;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:math' show min, max; 9 import 'dart:math' show min, max;
10 10
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 var asset = transform.primaryInput; 96 var asset = transform.primaryInput;
97 var id = asset.id; 97 var id = asset.id;
98 return asset.readAsString().then((content) { 98 return asset.readAsString().then((content) {
99 return _parseHtml(content, id.path, transform.logger, 99 return _parseHtml(content, id.path, transform.logger,
100 checkDocType: options.isHtmlEntryPoint(id)); 100 checkDocType: options.isHtmlEntryPoint(id));
101 }); 101 });
102 } 102 }
103 103
104 Future<Document> readAsHtml(AssetId id, Transform transform) { 104 Future<Document> readAsHtml(AssetId id, Transform transform) {
105 var primaryId = transform.primaryInput.id; 105 var primaryId = transform.primaryInput.id;
106 bool samePackage = id.package == primaryId.package; 106 bool samePackage = id.package == primaryId.package;
Siggi Cherem (dart-lang) 2014/02/13 17:46:33 use getAssetUrl here too
Jennifer Messerly 2014/02/13 20:43:47 Done.
107 var url = samePackage ? id.path 107 var url = samePackage ? id.path
108 : assetUrlFor(id, primaryId, transform.logger, allowAssetUrl: true); 108 : assetUrlFor(id, primaryId, transform.logger, allowAssetUrl: true);
109 return transform.readInputAsString(id).then((content) { 109 return transform.readInputAsString(id).then((content) {
110 return _parseHtml(content, url, transform.logger, 110 return _parseHtml(content, url, transform.logger,
111 checkDocType: samePackage && options.isHtmlEntryPoint(id)); 111 checkDocType: samePackage && options.isHtmlEntryPoint(id));
112 }); 112 });
113 } 113 }
114 114
115 String getAssetUrl(AssetId id, Transform transform) {
Siggi Cherem (dart-lang) 2014/02/13 17:46:33 I find it a bit confusing to have both getAssetUrl
Jennifer Messerly 2014/02/13 20:43:47 done! based Dartdoc on your extremely helpful expl
116 var primaryId = transform.primaryInput.id;
117 bool samePackage = id.package == primaryId.package;
118 return samePackage ? id.path
119 : assetUrlFor(id, primaryId, transform.logger, allowAssetUrl: true);
120 }
121
115 Future<bool> assetExists(AssetId id, Transform transform) => 122 Future<bool> assetExists(AssetId id, Transform transform) =>
116 transform.getInput(id).then((_) => true).catchError((_) => false); 123 transform.getInput(id).then((_) => true).catchError((_) => false);
117 124
118 String toString() => 'polymer ($runtimeType)'; 125 String toString() => 'polymer ($runtimeType)';
119 } 126 }
120 127
121 /** Transformer phases which should be applied to the Polymer package. */ 128 /** Transformer phases which should be applied to the Polymer package. */
122 List<List<Transformer>> get phasesForPolymer => 129 List<List<Transformer>> get phasesForPolymer =>
123 [[new ObservableTransformer(['lib/src/instance.dart'])]]; 130 [[new ObservableTransformer(['lib/src/instance.dart'])]];
124 131
125 /** 132 /**
126 * Create an [AssetId] for a [url] seen in the [source] asset. By default this 133 * Create an [AssetId] for a [url] seen in the [source] asset. By default this
127 * is used to resolve relative urls that occur in HTML assets, including 134 * is used to resolve relative urls that occur in HTML assets, including
128 * cross-package urls of the form "packages/foo/bar.html". Dart-style "package:" 135 * cross-package urls of the form "packages/foo/bar.html". Dart-style "package:"
129 * urls are not resolved unless [source] is Dart file (has a .dart extension). 136 * urls are not resolved unless [source] is Dart file (has a .dart extension).
130 */ 137 */
131 // TODO(sigmund): delete once this is part of barback (dartbug.com/12610) 138 // TODO(sigmund): delete once this is part of barback (dartbug.com/12610)
132 AssetId resolve(AssetId source, String url, TransformLogger logger, Span span) { 139 AssetId resolve(AssetId source, String url, TransformLogger logger, Span span,
140 {bool allowAbsolute: false}) {
133 if (url == null || url == '') return null; 141 if (url == null || url == '') return null;
134 var uri = Uri.parse(url); 142 var uri = Uri.parse(url);
135 var urlBuilder = path.url; 143 var urlBuilder = path.url;
136 if (uri.host != '' || uri.scheme != '' || urlBuilder.isAbsolute(url)) { 144 if (uri.host != '' || uri.scheme != '' || urlBuilder.isAbsolute(url)) {
137 if (source.extension == '.dart' && uri.scheme == 'package') { 145 if (source.extension == '.dart' && uri.scheme == 'package') {
138 var index = uri.path.indexOf('/'); 146 var index = uri.path.indexOf('/');
139 if (index != -1) { 147 if (index != -1) {
140 return new AssetId(uri.path.substring(0, index), 148 return new AssetId(uri.path.substring(0, index),
141 'lib${uri.path.substring(index)}'); 149 'lib${uri.path.substring(index)}');
142 } 150 }
143 } 151 }
144 152
145 logger.error('absolute paths not allowed: "$url"', span: span); 153 if (!allowAbsolute) {
154 logger.error('absolute paths not allowed: "$url"', span: span);
155 }
146 return null; 156 return null;
147 } 157 }
148 158
149 var targetPath = urlBuilder.normalize( 159 var targetPath = urlBuilder.normalize(
150 urlBuilder.join(urlBuilder.dirname(source.path), url)); 160 urlBuilder.join(urlBuilder.dirname(source.path), url));
151 var segments = urlBuilder.split(targetPath); 161 var segments = urlBuilder.split(targetPath);
152 var sourceSegments = urlBuilder.split(source.path); 162 var sourceSegments = urlBuilder.split(source.path);
153 assert (sourceSegments.length > 0); 163 assert (sourceSegments.length > 0);
154 var topFolder = sourceSegments[0]; 164 var topFolder = sourceSegments[0];
155 var entryFolder = topFolder != 'lib' && topFolder != 'asset'; 165 var entryFolder = topFolder != 'lib' && topFolder != 'asset';
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 return builder.relative(builder.join('/', id.path), 249 return builder.relative(builder.join('/', id.path),
240 from: builder.join('/', builder.dirname(sourceId.path))); 250 from: builder.join('/', builder.dirname(sourceId.path)));
241 } 251 }
242 252
243 253
244 /** Convert system paths to asset paths (asset paths are posix style). */ 254 /** Convert system paths to asset paths (asset paths are posix style). */
245 String _systemToAssetPath(String assetPath) { 255 String _systemToAssetPath(String assetPath) {
246 if (path.Style.platform != path.Style.windows) return assetPath; 256 if (path.Style.platform != path.Style.windows) return assetPath;
247 return path.posix.joinAll(path.split(assetPath)); 257 return path.posix.joinAll(path.split(assetPath));
248 } 258 }
OLDNEW
« no previous file with comments | « pkg/polymer/lib/src/build/code_extractor.dart ('k') | pkg/polymer/lib/src/build/import_inliner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698