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

Side by Side Diff: pkg/http/lib/src/utils.dart

Issue 22872012: Remove Encoding-enum from dart:io and add interface in dart:convert. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix typo. Created 7 years, 3 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
« no previous file with comments | « pkg/http/lib/src/response.dart ('k') | pkg/http/test/request_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library utils; 5 library utils;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert';
8 import 'dart:io'; 9 import 'dart:io';
9 import 'dart:typed_data'; 10 import 'dart:typed_data';
10 import 'dart:utf';
11 11
12 import 'byte_stream.dart'; 12 import 'byte_stream.dart';
13 13
14 /// Converts a URL query string (or `application/x-www-form-urlencoded` body) 14 /// Converts a URL query string (or `application/x-www-form-urlencoded` body)
15 /// into a [Map] from parameter names to values. 15 /// into a [Map] from parameter names to values.
16 /// 16 ///
17 /// queryToMap("foo=bar&baz=bang&qux"); 17 /// queryToMap("foo=bar&baz=bang&qux");
18 /// //=> {"foo": "bar", "baz": "bang", "qux": ""} 18 /// //=> {"foo": "bar", "baz": "bang", "qux": ""}
19 Map<String, String> queryToMap(String queryList) { 19 Map<String, String> queryToMap(String queryList) {
20 var map = {}; 20 var map = {};
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 return [ 59 return [
60 toSplit.substring(0, index), 60 toSplit.substring(0, index),
61 toSplit.substring(index + pattern.length) 61 toSplit.substring(index + pattern.length)
62 ]; 62 ];
63 } 63 }
64 64
65 /// Returns the [Encoding] that corresponds to [charset]. Returns [fallback] if 65 /// Returns the [Encoding] that corresponds to [charset]. Returns [fallback] if
66 /// [charset] is null or if no [Encoding] was found that corresponds to 66 /// [charset] is null or if no [Encoding] was found that corresponds to
67 /// [charset]. 67 /// [charset].
68 Encoding encodingForCharset( 68 Encoding encodingForCharset(
69 String charset, [Encoding fallback = Encoding.ISO_8859_1]) { 69 String charset, [Encoding fallback = LATIN1]) {
70 if (charset == null) return fallback; 70 if (charset == null) return fallback;
71 var encoding = Encoding.fromName(charset); 71 var encoding = Encoding.getByName(charset);
72 return encoding == null ? fallback : encoding; 72 return encoding == null ? fallback : encoding;
73 } 73 }
74 74
75 75
76 /// Returns the [Encoding] that corresponds to [charset]. Throws a 76 /// Returns the [Encoding] that corresponds to [charset]. Throws a
77 /// [FormatException] if no [Encoding] was found that corresponds to [charset]. 77 /// [FormatException] if no [Encoding] was found that corresponds to [charset].
78 /// [charset] may not be null. 78 /// [charset] may not be null.
79 Encoding requiredEncodingForCharset(String charset) { 79 Encoding requiredEncodingForCharset(String charset) {
80 var encoding = Encoding.fromName(charset); 80 var encoding = Encoding.getByName(charset);
81 if (encoding != null) return encoding; 81 if (encoding != null) return encoding;
82 throw new FormatException('Unsupported encoding "$charset".'); 82 throw new FormatException('Unsupported encoding "$charset".');
83 } 83 }
84 84
85 /// Converts [bytes] into a [String] according to [encoding].
86 String decodeString(List<int> bytes, Encoding encoding) {
87 // TODO(nweiz): implement this once issue 6284 is fixed.
88 return decodeUtf8(bytes);
89 }
90
91 /// Converts [string] into a byte array according to [encoding].
92 List<int> encodeString(String string, Encoding encoding) {
93 // TODO(nweiz): implement this once issue 6284 is fixed.
94 return encodeUtf8(string);
95 }
96
97 /// A regular expression that matches strings that are composed entirely of 85 /// A regular expression that matches strings that are composed entirely of
98 /// ASCII-compatible characters. 86 /// ASCII-compatible characters.
99 final RegExp _ASCII_ONLY = new RegExp(r"^[\x00-\x7F]+$"); 87 final RegExp _ASCII_ONLY = new RegExp(r"^[\x00-\x7F]+$");
100 88
101 /// Returns whether [string] is composed entirely of ASCII-compatible 89 /// Returns whether [string] is composed entirely of ASCII-compatible
102 /// characters. 90 /// characters.
103 bool isPlainAscii(String string) => _ASCII_ONLY.hasMatch(string); 91 bool isPlainAscii(String string) => _ASCII_ONLY.hasMatch(string);
104 92
105 /// Converts [input] into a [Uint8List]. If [input] is a [TypedData], this just 93 /// Converts [input] into a [Uint8List]. If [input] is a [TypedData], this just
106 /// returns a view on [input]. 94 /// returns a view on [input].
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 /// The return values of all [Future]s are discarded. Any errors will cause the 213 /// The return values of all [Future]s are discarded. Any errors will cause the
226 /// iteration to stop and will be piped through the return value. 214 /// iteration to stop and will be piped through the return value.
227 Future forEachFuture(Iterable input, Future fn(element)) { 215 Future forEachFuture(Iterable input, Future fn(element)) {
228 var iterator = input.iterator; 216 var iterator = input.iterator;
229 Future nextElement(_) { 217 Future nextElement(_) {
230 if (!iterator.moveNext()) return new Future.value(); 218 if (!iterator.moveNext()) return new Future.value();
231 return fn(iterator.current).then(nextElement); 219 return fn(iterator.current).then(nextElement);
232 } 220 }
233 return nextElement(null); 221 return nextElement(null);
234 } 222 }
OLDNEW
« no previous file with comments | « pkg/http/lib/src/response.dart ('k') | pkg/http/test/request_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698