was.js – Blame information for rev 3

Subversion Repositories:
Rev:
Rev Author Line No. Line
3 office 1 /*! was - v1.0.0 - 2017-05-28
2 * http://grimore.org
3 * Copyright (c) 2017 Wizardry and Steamworks <office@grimore.org>; Licensed GPL-3.0 */
4 /* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
5 /*************************************************************************/
6 if (!Array.prototype.product) {
7 Array.prototype.product = function(b) {
8 var a = this;
9 return $.map(
10 new Array(Math.max(this.length, a.length)),
11 function(e, i) {
12 var o = {};
13 o[a[i]] = b[i];
14 return o;
15 });
16 };
17 }
18 $.extend({
19 product: function(a, b) {
20 return $.map(
21 new Array(Math.max(this.length, a.length)),
22 function(e, i) {
23 var o = {};
24 o[a[i]] = b[i];
25 return o;
26 });
27 }
28 });
29  
30 /*************************************************************************/
31 /* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
32 /*************************************************************************/
33 if (!Array.prototype.stride) {
34 Array.prototype.stride = function(s) {
35 return this.filter(function(e, i) {
36 return i % s === 0;
37 });
38 };
39 }
40 $.extend({
41 stride: function(a, s) {
42 return a.filter(function(e, i) {
43 return i % s === 0;
44 });
45 }
46 });
47  
48 /*************************************************************************/
49 /* Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 */
50 /*************************************************************************/
51 if (!Array.prototype.chunk) {
52 Array.prototype.chunk = function(n) {
53 if (!this.length) {
54 return [];
55 }
56 return [this.slice(0, n)]
57 .concat(this.slice(n).chunk(n));
58 };
59 }
60 $.extend({
61 chunk: function(a, n) {
62 if (!a.length) {
63 return [];
64 }
65 return [a.slice(0, n)]
66 .concat(a.slice(n).chunk(n));
67 }
68 });
69  
70 ///////////////////////////////////////////////////////////////////////////
71 // Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 //
72 ///////////////////////////////////////////////////////////////////////////
73 function wasCSVToArray(csv) {
74 var l = [];
75 var s = [];
76 var m = "";
77  
78 do {
79 var a = csv.charAt(0);
80 csv = csv.slice(1, csv.length);
81 if(a === ",") {
82 if(s[s.length-1] !== '"') {
83 l.push(m);
84 m = "";
85 continue;
86 }
87 m += a;
88 continue;
89 }
90 if(a === '"' && csv.charAt(0) === a) {
91 m += a;
92 csv = csv.slice(1, csv.length);
93 continue;
94 }
95 if(a === '"') {
96 if(s[s.length-1] !== a) {
97 s.push(a);
98 continue;
99 }
100 s.pop();
101 continue;
102 }
103 m += a;
104 } while(csv !== "");
105  
106 l.push(m);
107  
108 return l;
109 }
110  
111 ///////////////////////////////////////////////////////////////////////////
112 // Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 //
113 ///////////////////////////////////////////////////////////////////////////
114 function wasArrayToCSV(a) {
115 var csv = [];
116 for(var i=0; i<a.length; ++i) {
117 var cell = a[i].toString().replace('"', '""');
118 if(/"\s,\r\n/.test(cell)) {
119 csv[i] = '"' + cell + '"';
120 continue;
121 }
122 csv[i] = cell;
123 }
124 return csv.join();
125 }