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

Side by Side Diff: samples/swarm/swarm_ui_lib/util/Uri.dart

Issue 11361190: a === b -> identical(a, b) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 8 years, 1 month 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) 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 /** 5 /**
6 * A parsed URI, inspired by: 6 * A parsed URI, inspired by:
7 * http://closure-library.googlecode.com/svn/docs/class_goog_Uri.html 7 * http://closure-library.googlecode.com/svn/docs/class_goog_Uri.html
8 */ 8 */
9 class Uri extends uri.Uri { 9 class Uri extends uri.Uri {
10 /** 10 /**
11 * Parses a URL query string into a map. Because you can have multiple values 11 * Parses a URL query string into a map. Because you can have multiple values
12 * for the same parameter name, each parameter name maps to a list of 12 * for the same parameter name, each parameter name maps to a list of
13 * values. For example, '?a=b&c=d&a=e' would be parsed as 13 * values. For example, '?a=b&c=d&a=e' would be parsed as
14 * [{'a':['b','e'],'c':['d']}]. 14 * [{'a':['b','e'],'c':['d']}].
15 */ 15 */
16 // TODO(jmesserly): consolidate with new Uri.fromString(...) 16 // TODO(jmesserly): consolidate with new Uri.fromString(...)
17 static Map<String, List<String>> parseQuery(String queryString) { 17 static Map<String, List<String>> parseQuery(String queryString) {
18 final queryParams = new Map<String, List<String>>(); 18 final queryParams = new Map<String, List<String>>();
19 if (queryString.startsWith('?')) { 19 if (queryString.startsWith('?')) {
20 final params = queryString.substring(1, queryString.length).split('&'); 20 final params = queryString.substring(1, queryString.length).split('&');
21 for (final param in params) { 21 for (final param in params) {
22 List<String> parts = param.split('='); 22 List<String> parts = param.split('=');
23 if (parts.length == 2) { 23 if (parts.length == 2) {
24 // TODO(hiltonc) the name and value should be URL decoded. 24 // TODO(hiltonc) the name and value should be URL decoded.
25 String name = parts[0]; 25 String name = parts[0];
26 String value = parts[1]; 26 String value = parts[1];
27 27
28 // Create a list of values for this name if not yet done. 28 // Create a list of values for this name if not yet done.
29 List values = queryParams[name]; 29 List values = queryParams[name];
30 if (values === null) { 30 if (values == null) {
31 values = new List(); 31 values = new List();
32 queryParams[name] = values; 32 queryParams[name] = values;
33 } 33 }
34 34
35 values.add(value); 35 values.add(value);
36 } 36 }
37 } 37 }
38 } 38 }
39 return queryParams; 39 return queryParams;
40 } 40 }
(...skipping 27 matching lines...) Expand all
68 return component.replaceAll('%3A', ':') 68 return component.replaceAll('%3A', ':')
69 .replaceAll('%2F', '/') 69 .replaceAll('%2F', '/')
70 .replaceAll('%3F', '?') 70 .replaceAll('%3F', '?')
71 .replaceAll('%3D', '=') 71 .replaceAll('%3D', '=')
72 .replaceAll('%26', '&') 72 .replaceAll('%26', '&')
73 .replaceAll('%20', ' '); 73 .replaceAll('%20', ' ');
74 } 74 }
75 75
76 Uri.fromString(String uriString) : super.fromString(uriString); 76 Uri.fromString(String uriString) : super.fromString(uriString);
77 } 77 }
OLDNEW
« no previous file with comments | « samples/swarm/swarm_ui_lib/util/StringUtils.dart ('k') | samples/swarm/swarm_ui_lib/view/CompositeView.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698