2Elm.Native.String.make = function(elm) {
3 elm.Native = elm.Native || {};
4 elm.Native.String = elm.Native.String || {};
5 if (elm.Native.String.values) return elm.Native.String.values;
6 if ('values' in Elm.Native.String)
7 return elm.Native.String.values = Elm.Native.String.values;
9 var Char = Elm.Char.make(elm);
10 var Maybe = Elm.Maybe.make(elm);
11 var JS = Elm.JavaScript.make(elm);
12 var Tuple2 = Elm.Native.Utils.make(elm).Tuple2;
14 function isEmpty(str) {
15 return str.length === 0;
17 function cons(chr,str) {
20 function uncons(str) {
22 return (chr = str[0]) ? Maybe.Just(Tuple2(chr, str.slice(1)))
25 function length(str) {
29 return str.split('').map(f).join('');
31 function filter(pred,str) {
32 return str.split('').filter(pred).join('');
34 function reverse(str) {
35 return str.split('').reverse().join('');
37 function foldl(f,b,str) {
39 for (var i = 0; i < len; ++i) {
44 function foldr(f,b,str) {
45 for (var i = str.length; i--; ) {
51 function split(sep, str) {
52 return str.split(sep);
54 function join(sep, strs) {
55 return JS.fromList(strs).join(sep);
57 function repeat(n, chr) {
60 if (n & 1) result += chr;
65 function pad(n,chr,str) {
66 var half = n - str.length / 2;
67 return repeat(Math.ceil(half),chr) + str + repeat(half|0,chr);
69 function padRight(n,chr,str) {
70 return str + repeat(n - str.length, chr);
72 function padLeft(n,chr,str) {
73 return repeat(n - str.length, chr) + str;
79 function trimLeft(str) {
80 return str.trimLeft();
82 function trimRight(str) {
83 return str.trimRight();
87 return JS.toList(str.split(/\s+/g));
89 function unwords(str) {
90 return JS.fromList(str).join(' ');
93 return JS.toList(str.split(/\r\n|\r|\n/g));
95 function unlines(str) {
96 return JS.fromList(str).join('\n');
99 function toUpper(str) {
100 return str.toUpperCase();
102 function toLower(str) {
103 return str.toLowerCase();
106 function any(pred, str) {
107 for (var i = str.length; i--; ) {
108 if (pred(str[i])) return true;
112 function all(pred, str) {
113 for (var i = str.length; i--; ) {
114 if (!pred(str[i])) return false;
119 function contains(sub, str) {
120 return str.indexOf(sub) > -1;
122 function startsWith(sub, str) {
123 return str.indexOf(sub) === 0;
125 function endsWith(sub, str) {
126 return str.lastIndexOf(sub) === str.length - sub.length;
128 function indexes(sub, str) {
129 var subLen = sub.length;
132 while ((i = str.indexOf(sub, i)) > -1) {
136 return JS.toList(is);
139 function toInt(str) {
140 var s = JS.fromString(str);
142 if (len === 0) { return Maybe.Nothing; }
145 if (len === 1) { return Maybe.Nothing; }
148 for (var i = start; i < len; ++i) {
149 if (!Char.isDigit(s[i])) { return Maybe.Nothing; }
151 return Maybe.Just(parseInt(s, 10));
154 function toFloat(str) {
155 var s = JS.fromString(str);
157 if (len === 0) { return Maybe.Nothing; }
160 if (len === 1) { return Maybe.Nothing; }
164 for (var i = start; i < len; ++i) {
165 if (Char.isDigit(s[i])) { continue; }
168 if (dotCount <= 1) { continue; }
170 return Maybe.Nothing;
172 return Maybe.Just(parseFloat(s));
175 return Elm.Native.String.values = {
191 padLeft: F3(padLeft),
192 padRight: F3(padRight),
196 trimRight: trimRight,
209 contains: F2(contains),
210 startsWith: F2(startsWith),
211 endsWith: F2(endsWith),
212 indexes: F2(indexes),
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list