Start on the String library
This commit is contained in:
parent
ab8ff11960
commit
df67fe5ec2
1 changed files with 85 additions and 0 deletions
85
libraries/Native/String.js
Normal file
85
libraries/Native/String.js
Normal file
|
@ -0,0 +1,85 @@
|
|||
Elm.Native.String = {};
|
||||
Elm.Native.String.make = function(elm) {
|
||||
elm.Native = elm.Native || {};
|
||||
elm.Native.String = elm.Native.String || {};
|
||||
if (elm.Native.String.values) return elm.Native.String.values;
|
||||
if ('values' in Elm.Native.String)
|
||||
return elm.Native.String.values = Elm.Native.String.values;
|
||||
|
||||
function isEmpty(str) {
|
||||
return str.length === 0;
|
||||
}
|
||||
function map(f,str) {
|
||||
return str.map(f);
|
||||
}
|
||||
function filter(pred,str) {
|
||||
return str.filter(pred);
|
||||
}
|
||||
function reverse(str) {
|
||||
return str.reverse();
|
||||
}
|
||||
|
||||
function repeat(n, chr) {
|
||||
var result = '';
|
||||
while (n > 0) {
|
||||
if (n & 1) result += chr;
|
||||
n >>= 1, chr += chr;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function center(n,chr,str) {
|
||||
var half = n - str.length / 2;
|
||||
return repeat(Math.ceil(half),chr) + str + repeat(half|0,chr);
|
||||
}
|
||||
function justifyLeft(n,chr,str) {
|
||||
return str + repeat(n - str.length, chr);
|
||||
}
|
||||
function justifyRight(n,chr,str) {
|
||||
return repeat(n - str.length, chr) + str;
|
||||
}
|
||||
|
||||
function strip(str) {
|
||||
return str.trim();
|
||||
}
|
||||
function stripLeft(str) {
|
||||
return str.trimLeft();
|
||||
}
|
||||
function stripRight(str) {
|
||||
return str.trimRight();
|
||||
}
|
||||
|
||||
function words(str) {
|
||||
return str.split(/\s+/g);
|
||||
}
|
||||
function unwords(str) {
|
||||
return str.join(' ');
|
||||
}
|
||||
function lines(str) {
|
||||
return str.split(/\r\n|\r|\n/g);
|
||||
}
|
||||
function unlines(str) {
|
||||
return str.join('\n');
|
||||
}
|
||||
|
||||
return {
|
||||
isEmpty: isEmpty,
|
||||
map: F2(map),
|
||||
filter: F2(filter),
|
||||
reverse: reverse,
|
||||
|
||||
repeat: F2(repeat),
|
||||
center: F3(center),
|
||||
justifyLeft: F3(justifyLeft),
|
||||
justifyRight: F3(justifyRight),
|
||||
|
||||
strip: strip,
|
||||
stripLeft: stripLeft,
|
||||
stripRight: stripRight,
|
||||
|
||||
words: words,
|
||||
unwords: unwords,
|
||||
lines: lines,
|
||||
unlines: unlines,
|
||||
|
||||
};
|
||||
};
|
Loading…
Reference in a new issue