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

Side by Side Diff: sdk/lib/io/http_date.dart

Issue 124753002: Code cleanup (mostly io lib and some http lib). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merge to head. Created 6 years, 11 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 | « sdk/lib/io/http.dart ('k') | sdk/lib/io/http_headers.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 part of dart.io; 5 part of dart.io;
6 6
7 /** 7 /**
8 * Utility functions for working with dates with HTTP specific date 8 * Utility functions for working with dates with HTTP specific date
9 * formats. 9 * formats.
10 */ 10 */
(...skipping 25 matching lines...) Expand all
36 * Format a date according to 36 * Format a date according to
37 * [RFC-1123](http://tools.ietf.org/html/rfc1123 "RFC-1123"), 37 * [RFC-1123](http://tools.ietf.org/html/rfc1123 "RFC-1123"),
38 * e.g. `Thu, 1 Jan 1970 00:00:00 GMT`. 38 * e.g. `Thu, 1 Jan 1970 00:00:00 GMT`.
39 */ 39 */
40 static String format(DateTime date) { 40 static String format(DateTime date) {
41 const List wkday = const ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; 41 const List wkday = const ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
42 const List month = const ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 42 const List month = const ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
43 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 43 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
44 44
45 DateTime d = date.toUtc(); 45 DateTime d = date.toUtc();
46 StringBuffer sb = new StringBuffer(); 46 StringBuffer sb = new StringBuffer()
Ivan Posva 2014/01/08 17:35:38 Lasse, Can you please explain the motivation of t
47 sb.write(wkday[d.weekday - 1]); 47 ..write(wkday[d.weekday - 1])
48 sb.write(", "); 48 ..write(", ")
49 sb.write(d.day.toString()); 49 ..write(d.day.toString())
50 sb.write(" "); 50 ..write(" ")
51 sb.write(month[d.month - 1]); 51 ..write(month[d.month - 1])
52 sb.write(" "); 52 ..write(" ")
53 sb.write(d.year.toString()); 53 ..write(d.year.toString())
54 sb.write(d.hour < 9 ? " 0" : " "); 54 ..write(d.hour < 9 ? " 0" : " ")
55 sb.write(d.hour.toString()); 55 ..write(d.hour.toString())
56 sb.write(d.minute < 9 ? ":0" : ":"); 56 ..write(d.minute < 9 ? ":0" : ":")
57 sb.write(d.minute.toString()); 57 ..write(d.minute.toString())
58 sb.write(d.second < 9 ? ":0" : ":"); 58 ..write(d.second < 9 ? ":0" : ":")
59 sb.write(d.second.toString()); 59 ..write(d.second.toString())
60 sb.write(" GMT"); 60 ..write(" GMT");
61 return sb.toString(); 61 return sb.toString();
62 } 62 }
63 63
64 /** 64 /**
65 * Parse a date string in either of the formats 65 * Parse a date string in either of the formats
66 * [RFC-1123](http://tools.ietf.org/html/rfc1123 "RFC-1123"), 66 * [RFC-1123](http://tools.ietf.org/html/rfc1123 "RFC-1123"),
67 * [RFC-850](http://tools.ietf.org/html/rfc850 "RFC-850") or 67 * [RFC-850](http://tools.ietf.org/html/rfc850 "RFC-850") or
68 * ANSI C's asctime() format. These formats are listed here. 68 * ANSI C's asctime() format. These formats are listed here.
69 * 69 *
70 * Thu, 1 Jan 1970 00:00:00 GMT 70 * Thu, 1 Jan 1970 00:00:00 GMT
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 const List monthsLowerCase = const ["jan", "feb", "mar", "apr", "may", 208 const List monthsLowerCase = const ["jan", "feb", "mar", "apr", "may",
209 "jun", "jul", "aug", "sep", "oct", 209 "jun", "jul", "aug", "sep", "oct",
210 "nov", "dec"]; 210 "nov", "dec"];
211 211
212 int position = 0; 212 int position = 0;
213 213
214 void error() { 214 void error() {
215 throw new HttpException("Invalid cookie date $date"); 215 throw new HttpException("Invalid cookie date $date");
216 } 216 }
217 217
218 bool isEnd() { 218 bool isEnd() => position == date.length;
219 return position == date.length;
220 }
221 219
222 bool isDelimiter(String s) { 220 bool isDelimiter(String s) {
223 int char = s.codeUnitAt(0); 221 int char = s.codeUnitAt(0);
224 if (char == 0x09) return true; 222 if (char == 0x09) return true;
225 if (char >= 0x20 && char <= 0x2F) return true; 223 if (char >= 0x20 && char <= 0x2F) return true;
226 if (char >= 0x3B && char <= 0x40) return true; 224 if (char >= 0x3B && char <= 0x40) return true;
227 if (char >= 0x5B && char <= 0x60) return true; 225 if (char >= 0x5B && char <= 0x60) return true;
228 if (char >= 0x7B && char <= 0x7E) return true; 226 if (char >= 0x7B && char <= 0x7E) return true;
229 return false; 227 return false;
230 } 228 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 int hour = toInt(timeList[0]); 305 int hour = toInt(timeList[0]);
308 int minute = toInt(timeList[1]); 306 int minute = toInt(timeList[1]);
309 int second = toInt(timeList[2]); 307 int second = toInt(timeList[2]);
310 if (hour > 23) error(); 308 if (hour > 23) error();
311 if (minute > 59) error(); 309 if (minute > 59) error();
312 if (second > 59) error(); 310 if (second > 59) error();
313 311
314 return new DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0); 312 return new DateTime.utc(year, month, dayOfMonth, hour, minute, second, 0);
315 } 313 }
316 } 314 }
OLDNEW
« no previous file with comments | « sdk/lib/io/http.dart ('k') | sdk/lib/io/http_headers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698