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.utils; | 5 library barback.utils; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:typed_data'; | 8 import 'dart:typed_data'; |
9 | 9 |
10 import 'package:stack_trace/stack_trace.dart'; | 10 import 'package:stack_trace/stack_trace.dart'; |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 /// A regular expression to match the exception prefix that some exceptions' | 329 /// A regular expression to match the exception prefix that some exceptions' |
330 /// [Object.toString] values contain. | 330 /// [Object.toString] values contain. |
331 final _exceptionPrefix = new RegExp(r'^([A-Z][a-zA-Z]*)?(Exception|Error): '); | 331 final _exceptionPrefix = new RegExp(r'^([A-Z][a-zA-Z]*)?(Exception|Error): '); |
332 | 332 |
333 /// Get a string description of an exception. | 333 /// Get a string description of an exception. |
334 /// | 334 /// |
335 /// Many exceptions include the exception class name at the beginning of their | 335 /// Many exceptions include the exception class name at the beginning of their |
336 /// [toString], so we remove that if it exists. | 336 /// [toString], so we remove that if it exists. |
337 String getErrorMessage(error) => | 337 String getErrorMessage(error) => |
338 error.toString().replaceFirst(_exceptionPrefix, ''); | 338 error.toString().replaceFirst(_exceptionPrefix, ''); |
| 339 |
| 340 /// Returns a human-friendly representation of [duration]. |
| 341 String niceDuration(Duration duration) { |
| 342 var result = duration.inMinutes > 0 ? "${duration.inMinutes}:" : ""; |
| 343 |
| 344 var s = duration.inSeconds % 59; |
| 345 var ms = (duration.inMilliseconds % 1000) ~/ 100; |
| 346 return result + "$s.${ms}s"; |
| 347 } |
OLD | NEW |