art-standard-lib
Version:
The Standard Library for JavaScript that aught to be.
155 lines (127 loc) • 4.24 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var StringCase, compactFlatten, isArray, isString, ref;
compactFlatten = require('./ArrayCompactFlatten').compactFlatten;
ref = require('./Types'), isArray = ref.isArray, isString = ref.isString;
module.exports = StringCase = (function() {
var findCapStartWordsRegExp, findWordsRegExp, getCodeWords;
function StringCase() {}
findWordsRegExp = /[a-zA-Z][a-zA-Z0-9]*|[0-9]+/g;
findCapStartWordsRegExp = /(?:[A-Z]{2,}(?![a-z]))|[A-Z][a-z0-9]*|[a-z0-9]+/g;
/* getCodeWords
INv1: <String>
INv2: <Array* <String>>
OUT: <Array <String>>
*/
StringCase.getCodeWords = getCodeWords = function(str) {
var word;
return compactFlatten((function() {
var i, len, ref1, results;
if (isArray(str)) {
return str;
} else if (isString(str) && findWordsRegExp.test(str)) {
ref1 = str.match(findWordsRegExp);
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
word = ref1[i];
results.push(word.match(findCapStartWordsRegExp));
}
return results;
} else {
return [];
}
})());
};
StringCase.codeWords = getCodeWords;
StringCase.lowerCase = function(str) {
return str != null ? str.toLocaleLowerCase() : void 0;
};
StringCase.upperCase = function(str) {
return str != null ? str.toLocaleUpperCase() : void 0;
};
StringCase.capitalize = function(str) {
return StringCase.upperCase(str.charAt(0)) + str.slice(1);
};
StringCase.decapitalize = function(str) {
return StringCase.lowerCase(str.charAt(0)) + str.slice(1);
};
StringCase.getLowerCaseCodeWords = function(str) {
var i, len, ref1, results, word;
ref1 = StringCase.getCodeWords(str);
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
word = ref1[i];
results.push(StringCase.lowerCase(word));
}
return results;
};
StringCase.getUpperCaseCodeWords = function(str) {
var i, len, ref1, results, word;
ref1 = StringCase.getCodeWords(str);
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
word = ref1[i];
results.push(StringCase.upperCase(word));
}
return results;
};
StringCase.getCapitalizedCodeWords = function(str) {
var i, len, ref1, results, word;
ref1 = StringCase.getCodeWords(str);
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
word = ref1[i];
results.push(StringCase.capitalize(StringCase.lowerCase(word)));
}
return results;
};
StringCase.upperCamelCase = function(str, joiner) {
var word;
if (joiner == null) {
joiner = "";
}
return ((function() {
var i, len, ref1, results;
ref1 = this.getLowerCaseCodeWords(str);
results = [];
for (i = 0, len = ref1.length; i < len; i++) {
word = ref1[i];
results.push(this.capitalize(word));
}
return results;
}).call(StringCase)).join(joiner);
};
StringCase.lowerCamelCase = function(str, joiner) {
if (joiner == null) {
joiner = "";
}
return StringCase.decapitalize(StringCase.upperCamelCase(str, joiner));
};
StringCase.snakeCase = function(str, joiner) {
if (joiner == null) {
joiner = "_";
}
return (StringCase.getLowerCaseCodeWords(str)).join(joiner);
};
StringCase.upperSnakeCase = function(str, joiner) {
if (joiner == null) {
joiner = "_";
}
return (StringCase.getUpperCaseCodeWords(str)).join(joiner);
};
StringCase.dashCase = function(str, joiner) {
if (joiner == null) {
joiner = "-";
}
return (StringCase.getLowerCaseCodeWords(str)).join(joiner);
};
StringCase.capitalizedDashCase = function(str, joiner) {
if (joiner == null) {
joiner = "-";
}
return (StringCase.getCapitalizedCodeWords(str)).join(joiner);
};
return StringCase;
})();
}).call(this);
//# sourceMappingURL=StringCase.js.map