aboutsummaryrefslogtreecommitdiffstats
path: root/src/jqLite.js
diff options
context:
space:
mode:
authorMisko Hevery2011-11-29 12:11:32 -0800
committerMisko Hevery2012-01-25 11:46:36 -0800
commit8af4fde18246ac1587b471a549e70d5d858bf0ee (patch)
tree925e223c9221c8e3b40ff3fb5cade11b819782d5 /src/jqLite.js
parent5001c1a1217772d2bffe108bafd475b24badf559 (diff)
downloadangular.js-8af4fde18246ac1587b471a549e70d5d858bf0ee.tar.bz2
add($compile): add compiler v2.0 - not connected
Diffstat (limited to 'src/jqLite.js')
-rw-r--r--src/jqLite.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/jqLite.js b/src/jqLite.js
index 9e16f8ec..e48d250b 100644
--- a/src/jqLite.js
+++ b/src/jqLite.js
@@ -100,13 +100,27 @@ function getStyle(element) {
}
+var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
+var PREFIX_REGEXP = /^(x[\:\-_]|data[\:\-_])/i;
+var MOZ_HACK_REGEXP = /^moz([A-Z])/;
/**
- * Converts dash-separated names to camelCase. Useful for dealing with css properties.
+ * Converts all accepted directives format into proper directive name.
+ * All of these will become 'myDirective':
+ * my:DiRective
+ * my-directive
+ * x-my-directive
+ * data-my:directive
+ *
+ * Also there is special case for Moz prefix starting with upper case letter.
+ * @param name Name to normalize
*/
function camelCase(name) {
- return name.replace(/\-(\w)/g, function(all, letter, offset){
- return (offset == 0 && letter == 'w') ? 'w' : letter.toUpperCase();
- });
+ return name.
+ replace(PREFIX_REGEXP, '').
+ replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
+ return offset ? letter.toUpperCase() : letter;
+ }).
+ replace(MOZ_HACK_REGEXP, 'Moz$1');
}
/////////////////////////////////////////////