OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 library polymer.src.utils; | |
6 | |
7 /** | |
8 * Converts a string name with hyphens into an identifier, by removing hyphens | |
9 * and capitalizing the following letter. Optionally [startUppercase] to | |
10 * captialize the first letter. | |
11 */ | |
12 String toCamelCase(String hyphenedName, {bool startUppercase: false}) { | |
13 var segments = hyphenedName.split('-'); | |
14 int start = startUppercase ? 0 : 1; | |
15 for (int i = start; i < segments.length; i++) { | |
16 var segment = segments[i]; | |
17 if (segment.length > 0) { | |
18 // Character between 'a'..'z' mapped to 'A'..'Z' | |
19 segments[i] = '${segment[0].toUpperCase()}${segment.substring(1)}'; | |
20 } | |
21 } | |
22 return segments.join(''); | |
23 } | |
24 | |
25 /** Reverse of [toCamelCase]. */ | |
26 String toHyphenedName(String word) { | |
27 var sb = new StringBuffer(); | |
28 for (int i = 0; i < word.length; i++) { | |
29 var lower = word[i].toLowerCase(); | |
30 if (word[i] != lower && i > 0) sb.write('-'); | |
31 sb.write(lower); | |
32 } | |
33 return sb.toString(); | |
34 } | |
OLD | NEW |