| OLD | NEW |
| 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("number_format"); | 5 #library("number_format"); |
| 6 | 6 |
| 7 #import('dart:math'); | 7 #import('dart:math'); |
| 8 | 8 |
| 9 #import("intl.dart"); | 9 #import("intl.dart"); |
| 10 #import("number_symbols.dart"); | 10 #import("number_symbols.dart"); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 _locale = Intl.verifiedLocale(locale) { | 55 _locale = Intl.verifiedLocale(locale) { |
| 56 // TODO(alanknight): There will need to be some kind of async setup | 56 // TODO(alanknight): There will need to be some kind of async setup |
| 57 // operations so as not to bring along every locale in every program. | 57 // operations so as not to bring along every locale in every program. |
| 58 _symbols = numberFormatSymbols[_locale]; | 58 _symbols = numberFormatSymbols[_locale]; |
| 59 _setPattern(newPattern); | 59 _setPattern(newPattern); |
| 60 } | 60 } |
| 61 | 61 |
| 62 /** | 62 /** |
| 63 * Return the locale code in which we operate, e.g. 'en_US' or 'pt'. | 63 * Return the locale code in which we operate, e.g. 'en_US' or 'pt'. |
| 64 */ | 64 */ |
| 65 String get locale() => _locale; | 65 String get locale => _locale; |
| 66 | 66 |
| 67 /** | 67 /** |
| 68 * Return the symbols which are used in our locale. Cache them to avoid | 68 * Return the symbols which are used in our locale. Cache them to avoid |
| 69 * repeated lookup. | 69 * repeated lookup. |
| 70 */ | 70 */ |
| 71 NumberSymbols get symbols() { | 71 NumberSymbols get symbols { |
| 72 return _symbols; | 72 return _symbols; |
| 73 } | 73 } |
| 74 | 74 |
| 75 // TODO(alanknight): Actually use the pattern and locale. | 75 // TODO(alanknight): Actually use the pattern and locale. |
| 76 _setPattern(String x) {} | 76 _setPattern(String x) {} |
| 77 | 77 |
| 78 /** | 78 /** |
| 79 * Format [number] according to our pattern and return the formatted string. | 79 * Format [number] according to our pattern and return the formatted string. |
| 80 */ | 80 */ |
| 81 String format(num number) { | 81 String format(num number) { |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 */ | 242 */ |
| 243 void _group(int totalLength, int position) { | 243 void _group(int totalLength, int position) { |
| 244 var distanceFromEnd = totalLength - position; | 244 var distanceFromEnd = totalLength - position; |
| 245 if (distanceFromEnd <= 1 || _groupingSize <= 0) return; | 245 if (distanceFromEnd <= 1 || _groupingSize <= 0) return; |
| 246 if (distanceFromEnd % _groupingSize == 1) { | 246 if (distanceFromEnd % _groupingSize == 1) { |
| 247 _add(symbols.GROUP_SEP); | 247 _add(symbols.GROUP_SEP); |
| 248 } | 248 } |
| 249 } | 249 } |
| 250 | 250 |
| 251 /** Returns the code point for the character '0'. */ | 251 /** Returns the code point for the character '0'. */ |
| 252 int get _zero() => '0'.charCodes()[0]; | 252 int get _zero => '0'.charCodes()[0]; |
| 253 | 253 |
| 254 /** Returns the code point for the locale's zero digit. */ | 254 /** Returns the code point for the locale's zero digit. */ |
| 255 int get _localeZero() => symbols.ZERO_DIGIT.charCodeAt(0); | 255 int get _localeZero => symbols.ZERO_DIGIT.charCodeAt(0); |
| 256 | 256 |
| 257 /** | 257 /** |
| 258 * Returns the prefix for [x] based on whether it's positive or negative. | 258 * Returns the prefix for [x] based on whether it's positive or negative. |
| 259 * In en_US this would be '' and '-' respectively. | 259 * In en_US this would be '' and '-' respectively. |
| 260 */ | 260 */ |
| 261 String _signPrefix(num x) { | 261 String _signPrefix(num x) { |
| 262 return x.isNegative() ? _negativePrefix : _positivePrefix; | 262 return x.isNegative() ? _negativePrefix : _positivePrefix; |
| 263 } | 263 } |
| 264 | 264 |
| 265 /** | 265 /** |
| 266 * Returns the suffix for [x] based on wether it's positive or negative. | 266 * Returns the suffix for [x] based on wether it's positive or negative. |
| 267 * In en_US there are no suffixes for positive or negative. | 267 * In en_US there are no suffixes for positive or negative. |
| 268 */ | 268 */ |
| 269 String _signSuffix(num x) { | 269 String _signSuffix(num x) { |
| 270 return x.isNegative() ? _negativeSuffix : _positiveSuffix; | 270 return x.isNegative() ? _negativeSuffix : _positiveSuffix; |
| 271 } | 271 } |
| 272 } | 272 } |
| OLD | NEW |