crossfilter_rails 1.2.1.pre1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/app/assets/javascripts/crossfilter.js +74 -9
- data/app/assets/javascripts/crossfilter.min.js +1 -1
- data/crossfilter_rails.gemspec +1 -0
- data/lib/crossfilter_rails/version.rb +1 -1
- metadata +18 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1c2b3895c546977bae84213f78d65471d9970382
|
|
4
|
+
data.tar.gz: 567ab47b59a3f9c616ad098d5e62a78307c089fb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f99b3574b335d35387b1e4bf5eec3d68bb4b8866b624aa44668e37ac0aeb39f851d603ffe72a43cb974f10b4975104376523dca20028f5796019368b3d784d40
|
|
7
|
+
data.tar.gz: 58b361f5802f6d05ca350693b666d76cab84a6aaa12b7bbaf1b7b73f7b8f0d881fa026ffdff5cec91f0972cc8427d4ba9166cfd41e83a24f17265a2f4e99f8a3
|
data/.gitignore
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(exports){
|
|
2
|
-
crossfilter.version = "1.
|
|
2
|
+
crossfilter.version = "1.3.0";
|
|
3
3
|
function crossfilter_identity(d) {
|
|
4
4
|
return d;
|
|
5
5
|
}
|
|
@@ -448,6 +448,7 @@ if (typeof Uint8Array !== "undefined") {
|
|
|
448
448
|
crossfilter_array32 = function(n) { return new Uint32Array(n); };
|
|
449
449
|
|
|
450
450
|
crossfilter_arrayLengthen = function(array, length) {
|
|
451
|
+
if (array.length >= length) return array;
|
|
451
452
|
var copy = new array.constructor(length);
|
|
452
453
|
copy.set(array);
|
|
453
454
|
return copy;
|
|
@@ -517,6 +518,7 @@ exports.crossfilter = crossfilter;
|
|
|
517
518
|
function crossfilter() {
|
|
518
519
|
var crossfilter = {
|
|
519
520
|
add: add,
|
|
521
|
+
remove: removeData,
|
|
520
522
|
dimension: dimension,
|
|
521
523
|
groupAll: groupAll,
|
|
522
524
|
size: size
|
|
@@ -528,7 +530,8 @@ function crossfilter() {
|
|
|
528
530
|
M = 8, // number of dimensions that can fit in `filters`
|
|
529
531
|
filters = crossfilter_array8(0), // M bits per record; 1 is filtered out
|
|
530
532
|
filterListeners = [], // when the filters change
|
|
531
|
-
dataListeners = []
|
|
533
|
+
dataListeners = [], // when data is added
|
|
534
|
+
removeDataListeners = []; // when data is removed
|
|
532
535
|
|
|
533
536
|
// Adds the specified new records to this crossfilter.
|
|
534
537
|
function add(newData) {
|
|
@@ -548,6 +551,32 @@ function crossfilter() {
|
|
|
548
551
|
return crossfilter;
|
|
549
552
|
}
|
|
550
553
|
|
|
554
|
+
// Removes all records that match the current filters.
|
|
555
|
+
function removeData() {
|
|
556
|
+
var newIndex = crossfilter_index(n, n),
|
|
557
|
+
removed = [];
|
|
558
|
+
for (var i = 0, j = 0; i < n; ++i) {
|
|
559
|
+
if (filters[i]) newIndex[i] = j++;
|
|
560
|
+
else removed.push(i);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
// Remove all matching records from groups.
|
|
564
|
+
filterListeners.forEach(function(l) { l(0, [], removed); });
|
|
565
|
+
|
|
566
|
+
// Update indexes.
|
|
567
|
+
removeDataListeners.forEach(function(l) { l(newIndex); });
|
|
568
|
+
|
|
569
|
+
// Remove old filters and data by overwriting.
|
|
570
|
+
for (var i = 0, j = 0, k; i < n; ++i) {
|
|
571
|
+
if (k = filters[i]) {
|
|
572
|
+
if (i !== j) filters[j] = k, data[j] = data[i];
|
|
573
|
+
++j;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
data.length = j;
|
|
577
|
+
while (n > j) filters[--n] = 0;
|
|
578
|
+
}
|
|
579
|
+
|
|
551
580
|
// Adds a new dimension with the specified value accessor function.
|
|
552
581
|
function dimension(value) {
|
|
553
582
|
var dimension = {
|
|
@@ -560,7 +589,8 @@ function crossfilter() {
|
|
|
560
589
|
bottom: bottom,
|
|
561
590
|
group: group,
|
|
562
591
|
groupAll: groupAll,
|
|
563
|
-
|
|
592
|
+
dispose: dispose,
|
|
593
|
+
remove: dispose // for backwards-compatibility
|
|
564
594
|
};
|
|
565
595
|
|
|
566
596
|
var one = ~m & -~m, // lowest unset bit as mask, e.g., 00001000
|
|
@@ -583,6 +613,8 @@ function crossfilter() {
|
|
|
583
613
|
dataListeners.unshift(preAdd);
|
|
584
614
|
dataListeners.push(postAdd);
|
|
585
615
|
|
|
616
|
+
removeDataListeners.push(removeData);
|
|
617
|
+
|
|
586
618
|
// Incorporate any existing data into this dimension, and make sure that the
|
|
587
619
|
// filter bitset is wide enough to handle the new dimension.
|
|
588
620
|
m |= one;
|
|
@@ -664,6 +696,22 @@ function crossfilter() {
|
|
|
664
696
|
newValues = newIndex = null;
|
|
665
697
|
}
|
|
666
698
|
|
|
699
|
+
function removeData(reIndex) {
|
|
700
|
+
for (var i = 0, j = 0, k; i < n; ++i) {
|
|
701
|
+
if (filters[k = index[i]] && i !== j) {
|
|
702
|
+
values[j] = values[i];
|
|
703
|
+
index[j] = reIndex[k];
|
|
704
|
+
++j;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
values.length = j;
|
|
708
|
+
while (j < n) index[j++] = 0;
|
|
709
|
+
|
|
710
|
+
// Bisect again to recompute lo0 and hi0.
|
|
711
|
+
var bounds = refilter(values);
|
|
712
|
+
lo0 = bounds[0], hi0 = bounds[1];
|
|
713
|
+
}
|
|
714
|
+
|
|
667
715
|
// Updates the selected values based on the specified bounds [lo, hi].
|
|
668
716
|
// This implementation is used by all the public filter methods.
|
|
669
717
|
function filterIndexBounds(bounds) {
|
|
@@ -818,7 +866,8 @@ function crossfilter() {
|
|
|
818
866
|
order: order,
|
|
819
867
|
orderNatural: orderNatural,
|
|
820
868
|
size: size,
|
|
821
|
-
|
|
869
|
+
dispose: dispose,
|
|
870
|
+
remove: dispose // for backwards-compatibility
|
|
822
871
|
};
|
|
823
872
|
|
|
824
873
|
// Ensure that this group will be removed when the dimension is removed.
|
|
@@ -845,6 +894,7 @@ function crossfilter() {
|
|
|
845
894
|
// the parent dimension for when data is added, and compute new keys.
|
|
846
895
|
filterListeners.push(update);
|
|
847
896
|
indexListeners.push(add);
|
|
897
|
+
removeDataListeners.push(removeData);
|
|
848
898
|
|
|
849
899
|
// Incorporate any existing data into the grouping.
|
|
850
900
|
add(values, index, 0, n);
|
|
@@ -958,6 +1008,15 @@ function crossfilter() {
|
|
|
958
1008
|
}
|
|
959
1009
|
}
|
|
960
1010
|
|
|
1011
|
+
function removeData() {
|
|
1012
|
+
for (var i = 0, j = 0; i < n; ++i) {
|
|
1013
|
+
if (filters[i]) {
|
|
1014
|
+
if (i !== j) groupIndex[j] = groupIndex[i];
|
|
1015
|
+
++j;
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
|
|
961
1020
|
// Reduces the specified selected or deselected records.
|
|
962
1021
|
// This function is only used when the cardinality is greater than 1.
|
|
963
1022
|
function updateMany(filterOne, added, removed) {
|
|
@@ -1098,11 +1157,13 @@ function crossfilter() {
|
|
|
1098
1157
|
}
|
|
1099
1158
|
|
|
1100
1159
|
// Removes this group and associated event listeners.
|
|
1101
|
-
function
|
|
1160
|
+
function dispose() {
|
|
1102
1161
|
var i = filterListeners.indexOf(update);
|
|
1103
1162
|
if (i >= 0) filterListeners.splice(i, 1);
|
|
1104
1163
|
i = indexListeners.indexOf(add);
|
|
1105
1164
|
if (i >= 0) indexListeners.splice(i, 1);
|
|
1165
|
+
i = removeDataListeners.indexOf(removeData);
|
|
1166
|
+
if (i >= 0) removeDataListeners.splice(i, 1);
|
|
1106
1167
|
return group;
|
|
1107
1168
|
}
|
|
1108
1169
|
|
|
@@ -1121,12 +1182,15 @@ function crossfilter() {
|
|
|
1121
1182
|
return g;
|
|
1122
1183
|
}
|
|
1123
1184
|
|
|
1124
|
-
|
|
1125
|
-
|
|
1185
|
+
// Removes this dimension and associated groups and event listeners.
|
|
1186
|
+
function dispose() {
|
|
1187
|
+
dimensionGroups.forEach(function(group) { group.dispose(); });
|
|
1126
1188
|
var i = dataListeners.indexOf(preAdd);
|
|
1127
1189
|
if (i >= 0) dataListeners.splice(i, 1);
|
|
1128
1190
|
i = dataListeners.indexOf(postAdd);
|
|
1129
1191
|
if (i >= 0) dataListeners.splice(i, 1);
|
|
1192
|
+
i = removeDataListeners.indexOf(removeData);
|
|
1193
|
+
if (i >= 0) removeDataListeners.splice(i, 1);
|
|
1130
1194
|
for (i = 0; i < n; ++i) filters[i] &= zero;
|
|
1131
1195
|
m &= zero;
|
|
1132
1196
|
return dimension;
|
|
@@ -1143,7 +1207,8 @@ function crossfilter() {
|
|
|
1143
1207
|
reduceCount: reduceCount,
|
|
1144
1208
|
reduceSum: reduceSum,
|
|
1145
1209
|
value: value,
|
|
1146
|
-
|
|
1210
|
+
dispose: dispose,
|
|
1211
|
+
remove: dispose // for backwards-compatibility
|
|
1147
1212
|
};
|
|
1148
1213
|
|
|
1149
1214
|
var reduceValue,
|
|
@@ -1238,7 +1303,7 @@ function crossfilter() {
|
|
|
1238
1303
|
}
|
|
1239
1304
|
|
|
1240
1305
|
// Removes this group and associated event listeners.
|
|
1241
|
-
function
|
|
1306
|
+
function dispose() {
|
|
1242
1307
|
var i = filterListeners.indexOf(update);
|
|
1243
1308
|
if (i >= 0) filterListeners.splice(i);
|
|
1244
1309
|
i = dataListeners.indexOf(add);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
!function(r){function n(r){return r}function t(r,n){for(var t=0,e=n.length,u=Array(e);e>t;++t)u[t]=r[n[t]];return u}function e(r){function n(n,t,e,u){for(;u>e;){var f=e+u>>>1;r(n[f])<t?e=f+1:u=f}return e}function t(n,t,e,u){for(;u>e;){var f=e+u>>>1;t<r(n[f])?u=f:e=f+1}return e}return t.right=t,t.left=n,t}function u(r){function n(r,n,t){for(var u=t-n,f=(u>>>1)+1;--f>0;)e(r,f,u,n);return r}function t(r,n,t){for(var u,f=t-n;--f>0;)u=r[n],r[n]=r[n+f],r[n+f]=u,e(r,1,f,n);return r}function e(n,t,e,u){for(var f,o=n[--u+t],i=r(o);(f=t<<1)<=e&&(e>f&&r(n[u+f])>r(n[u+f+1])&&f++,!(i<=r(n[u+f])));)n[u+t]=n[u+f],t=f;n[u+t]=o}return n.sort=t,n}function f(r){function n(n,e,u,f){var o,i,a,c,l=Array(f=Math.min(u-e,f));for(i=0;f>i;++i)l[i]=n[e++];if(t(l,0,f),u>e){o=r(l[0]);do(a=r(c=n[e])>o)&&(l[0]=c,o=r(t(l,0,f)[0]));while(++e<u)}return l}var t=u(r);return n}function o(r){function n(n,t,e){for(var u=t+1;e>u;++u){for(var f=u,o=n[u],i=r(o);f>t&&r(n[f-1])>i;--f)n[f]=n[f-1];n[f]=o}return n}return n}function i(r){function n(r,n,u){return(U>u-n?e:t)(r,n,u)}function t(t,e,u){var f,o=0|(u-e)/6,i=e+o,a=u-1-o,c=e+u-1>>1,l=c-o,v=c+o,s=t[i],h=r(s),p=t[l],d=r(p),g=t[c],y=r(g),m=t[v],b=r(m),A=t[a],k=r(A);h>d&&(f=s,s=p,p=f,f=h,h=d,d=f),b>k&&(f=m,m=A,A=f,f=b,b=k,k=f),h>y&&(f=s,s=g,g=f,f=h,h=y,y=f),d>y&&(f=p,p=g,g=f,f=d,d=y,y=f),h>b&&(f=s,s=m,m=f,f=h,h=b,b=f),y>b&&(f=g,g=m,m=f,f=y,y=b,b=f),d>k&&(f=p,p=A,A=f,f=d,d=k,k=f),d>y&&(f=p,p=g,g=f,f=d,d=y,y=f),b>k&&(f=m,m=A,A=f,f=b,b=k,k=f);var x=p,E=d,O=m,w=b;t[i]=s,t[l]=t[e],t[c]=g,t[v]=t[u-1],t[a]=A;var M=e+1,U=u-2,z=w>=E&&E>=w;if(z)for(var N=M;U>=N;++N){var C=t[N],S=r(C);if(E>S)N!==M&&(t[N]=t[M],t[M]=C),++M;else if(S>E)for(;;){var q=r(t[U]);{if(!(q>E)){if(E>q){t[N]=t[M],t[M++]=t[U],t[U--]=C;break}t[N]=t[U],t[U--]=C;break}U--}}}else for(var N=M;U>=N;N++){var C=t[N],S=r(C);if(E>S)N!==M&&(t[N]=t[M],t[M]=C),++M;else if(S>w)for(;;){var q=r(t[U]);{if(!(q>w)){E>q?(t[N]=t[M],t[M++]=t[U],t[U--]=C):(t[N]=t[U],t[U--]=C);break}if(U--,N>U)break}}}if(t[e]=t[M-1],t[M-1]=x,t[u-1]=t[U+1],t[U+1]=O,n(t,e,M-1),n(t,U+2,u),z)return t;if(i>M&&U>a){for(var F,q;(F=r(t[M]))<=E&&F>=E;)++M;for(;(q=r(t[U]))<=w&&q>=w;)--U;for(var N=M;U>=N;N++){var C=t[N],S=r(C);if(E>=S&&S>=E)N!==M&&(t[N]=t[M],t[M]=C),M++;else if(w>=S&&S>=w)for(;;){var q=r(t[U]);{if(!(w>=q&&q>=w)){E>q?(t[N]=t[M],t[M++]=t[U],t[U--]=C):(t[N]=t[U],t[U--]=C);break}if(U--,N>U)break}}}}return n(t,M,U+1)}var e=o(r);return n}function a(r){return Array(r)}function c(r,n){return function(t){var e=t.length;return[r.left(t,n,0,e),r.right(t,n,0,e)]}}function l(r,n){var t=n[0],e=n[1];return function(n){var u=n.length;return[r.left(n,t,0,u),r.left(n,e,0,u)]}}function v(r){return[0,r.length]}function s(){return null}function h(){return 0}function p(r){return r+1}function d(r){return r-1}function g(r){return function(n,t){return n+ +r(t)}}function y(r){return function(n,t){return n-r(t)}}function m(){function r(r){var n=w,t=r.length;return t&&(O=O.concat(r),N=S(N,w+=t),F.forEach(function(e){e(r,n,t)})),E}function e(){for(var r=b(w,w),n=[],t=0,e=0;w>t;++t)N[t]?r[t]=e++:n.push(t);C.forEach(function(r){r(0,[],n)}),R.forEach(function(n){n(r)});for(var u,t=0,e=0;w>t;++t)(u=N[t])&&(t!==e&&(N[e]=u,O[e]=O[t]),++e);for(O.length=e;w>e;)N[--w]=0}function o(r){function e(n,e,u){T=n.map(r),V=$(A(u),0,u),T=t(T,V);var f,o,i=_(T),a=i[0],c=i[1];if(W)for(f=0;u>f;++f)W(T[f],o=V[f]+e)||(N[o]|=Y);else{for(f=0;a>f;++f)N[V[f]+e]|=Y;for(f=c;u>f;++f)N[V[f]+e]|=Y}if(!e)return P=T,Q=V,tn=a,en=c,void 0;var l=P,v=Q,s=0,h=0;for(P=Array(w),Q=b(w,w),f=0;e>s&&u>h;++f)l[s]<T[h]?(P[f]=l[s],Q[f]=v[s++]):(P[f]=T[h],Q[f]=V[h++]+e);for(;e>s;++s,++f)P[f]=l[s],Q[f]=v[s];for(;u>h;++h,++f)P[f]=T[h],Q[f]=V[h]+e;i=_(P),tn=i[0],en=i[1]}function o(r,n,t){rn.forEach(function(r){r(T,V,n,t)}),T=V=null}function a(r){for(var n,t=0,e=0;w>t;++t)N[n=Q[t]]&&t!==e&&(P[e]=P[t],Q[e]=r[n],++e);for(P.length=e;w>e;)Q[e++]=0;var u=_(P);tn=u[0],en=u[1]}function m(r){var n=r[0],t=r[1];if(W)return W=null,G(function(r,e){return e>=n&&t>e}),tn=n,en=t,X;var e,u,f,o=[],i=[];if(tn>n)for(e=n,u=Math.min(tn,t);u>e;++e)N[f=Q[e]]^=Y,o.push(f);else if(n>tn)for(e=tn,u=Math.min(n,en);u>e;++e)N[f=Q[e]]^=Y,i.push(f);if(t>en)for(e=Math.max(n,en),u=t;u>e;++e)N[f=Q[e]]^=Y,o.push(f);else if(en>t)for(e=Math.max(tn,t),u=en;u>e;++e)N[f=Q[e]]^=Y,i.push(f);return tn=n,en=t,C.forEach(function(r){r(Y,o,i)}),X}function E(r){return null==r?B():Array.isArray(r)?j(r):"function"==typeof r?D(r):z(r)}function z(r){return m((_=c(x,r))(P))}function j(r){return m((_=l(x,r))(P))}function B(){return m((_=v)(P))}function D(r){return _=v,G(W=r),tn=0,en=w,X}function G(r){var n,t,e,u=[],f=[];for(n=0;w>n;++n)!(N[t=Q[n]]&Y)^(e=r(P[n],t))&&(e?(N[t]&=Z,u.push(t)):(N[t]|=Y,f.push(t)));C.forEach(function(r){r(Y,u,f)})}function H(r){for(var n,t=[],e=en;--e>=tn&&r>0;)N[n=Q[e]]||(t.push(O[n]),--r);return t}function I(r){for(var n,t=[],e=tn;en>e&&r>0;)N[n=Q[e]]||(t.push(O[n]),--r),e++;return t}function J(r){function t(n,t,e,u){function f(){++T===L&&(m=q(m,K<<=1),B=q(B,K),L=k(K))}var l,v,h,p,d,g,y=j,m=b(T,L),A=H,x=J,E=T,M=0,U=0;for(X&&(A=x=s),j=Array(T),T=0,B=E>1?S(B,w):b(w,L),E&&(h=(v=y[0]).key);u>U&&!((p=r(n[U]))>=p);)++U;for(;u>U;){for(v&&p>=h?(d=v,g=h,m[M]=T,(v=y[++M])&&(h=v.key)):(d={key:p,value:x()},g=p),j[T]=d;!(p>g||(B[l=t[U]+e]=T,N[l]&Z||(d.value=A(d.value,O[l])),++U>=u));)p=r(n[U]);f()}for(;E>M;)j[m[M]=T]=y[M++],f();if(T>M)for(M=0;e>M;++M)B[M]=m[B[M]];l=C.indexOf(V),T>1?(V=o,W=a):(1===T?(V=i,W=c):(V=s,W=s),B=null),C[l]=V}function e(){for(var r=0,n=0;w>r;++r)N[r]&&(r!==n&&(B[n]=B[r]),++n)}function o(r,n,t){if(r!==Y&&!X){var e,u,f,o;for(e=0,f=n.length;f>e;++e)N[u=n[e]]&Z||(o=j[B[u]],o.value=H(o.value,O[u]));for(e=0,f=t.length;f>e;++e)(N[u=t[e]]&Z)===r&&(o=j[B[u]],o.value=I(o.value,O[u]))}}function i(r,n,t){if(r!==Y&&!X){var e,u,f,o=j[0];for(e=0,f=n.length;f>e;++e)N[u=n[e]]&Z||(o.value=H(o.value,O[u]));for(e=0,f=t.length;f>e;++e)(N[u=t[e]]&Z)===r&&(o.value=I(o.value,O[u]))}}function a(){var r,n;for(r=0;T>r;++r)j[r].value=J();for(r=0;w>r;++r)N[r]&Z||(n=j[B[r]],n.value=H(n.value,O[r]))}function c(){var r,n=j[0];for(n.value=J(),r=0;w>r;++r)N[r]&Z||(n.value=H(n.value,O[r]))}function l(){return X&&(W(),X=!1),j}function v(r){var n=D(l(),0,j.length,r);return G.sort(n,0,n.length)}function m(r,n,t){return H=r,I=n,J=t,X=!0,F}function A(){return m(p,d,h)}function x(r){return m(g(r),y(r),h)}function E(r){function n(n){return r(n.value)}return D=f(n),G=u(n),F}function M(){return E(n)}function U(){return T}function z(){var r=C.indexOf(V);return r>=0&&C.splice(r,1),r=rn.indexOf(t),r>=0&&rn.splice(r,1),r=R.indexOf(e),r>=0&&R.splice(r,1),F}var F={top:v,all:l,reduce:m,reduceCount:A,reduceSum:x,order:E,orderNatural:M,size:U,dispose:z,remove:z};nn.push(F);var j,B,D,G,H,I,J,K=8,L=k(K),T=0,V=s,W=s,X=!0;return arguments.length<1&&(r=n),C.push(V),rn.push(t),R.push(e),t(P,Q,0,w),A().orderNatural()}function K(){var r=J(s),n=r.all;return delete r.all,delete r.top,delete r.order,delete r.orderNatural,delete r.size,r.value=function(){return n()[0].value},r}function L(){nn.forEach(function(r){r.dispose()});var r=F.indexOf(e);for(r>=0&&F.splice(r,1),r=F.indexOf(o),r>=0&&F.splice(r,1),r=R.indexOf(a),r>=0&&R.splice(r,1),r=0;w>r;++r)N[r]&=Z;return M&=Z,X}var P,Q,T,V,W,X={filter:E,filterExact:z,filterRange:j,filterFunction:D,filterAll:B,top:H,bottom:I,group:J,groupAll:K,dispose:L,remove:L},Y=~M&-~M,Z=~Y,$=i(function(r){return T[r]}),_=v,rn=[],nn=[],tn=0,en=0;return F.unshift(e),F.push(o),R.push(a),M|=Y,(U>=32?!Y:M&(1<<U)-1)&&(N=q(N,U<<=1)),e(O,0,w),o(O,0,w),X}function a(){function r(r,n){var t;if(!m)for(t=n;w>t;++t)N[t]||(a=c(a,O[t]))}function n(r,n,t){var e,u,f;if(!m){for(e=0,f=n.length;f>e;++e)N[u=n[e]]||(a=c(a,O[u]));for(e=0,f=t.length;f>e;++e)N[u=t[e]]===r&&(a=l(a,O[u]))}}function t(){var r;for(a=v(),r=0;w>r;++r)N[r]||(a=c(a,O[r]))}function e(r,n,t){return c=r,l=n,v=t,m=!0,s}function u(){return e(p,d,h)}function f(r){return e(g(r),y(r),h)}function o(){return m&&(t(),m=!1),a}function i(){var t=C.indexOf(n);return t>=0&&C.splice(t),t=F.indexOf(r),t>=0&&F.splice(t),s}var a,c,l,v,s={reduce:e,reduceCount:u,reduceSum:f,value:o,dispose:i,remove:i},m=!0;return C.push(n),F.push(r),r(O,0,w),u()}function m(){return w}var E={add:r,remove:e,dimension:o,groupAll:a,size:m},O=[],w=0,M=0,U=8,N=z(0),C=[],F=[],R=[];return arguments.length?r(arguments[0]):E}function b(r,n){return(257>n?z:65537>n?N:C)(r)}function A(r){for(var n=b(r,r),t=-1;++t<r;)n[t]=t;return n}function k(r){return 8===r?256:16===r?65536:4294967296}m.version="1.3.0",m.permute=t;var x=m.bisect=e(n);x.by=e;var E=m.heap=u(n);E.by=u;var O=m.heapselect=f(n);O.by=f;var w=m.insertionsort=o(n);w.by=o;var M=m.quicksort=i(n);M.by=i;var U=32,z=a,N=a,C=a,S=n,q=n;"undefined"!=typeof Uint8Array&&(z=function(r){return new Uint8Array(r)},N=function(r){return new Uint16Array(r)},C=function(r){return new Uint32Array(r)},S=function(r,n){if(r.length>=n)return r;var t=new r.constructor(n);return t.set(r),t},q=function(r,n){var t;switch(n){case 16:t=N(r.length);break;case 32:t=C(r.length);break;default:throw Error("invalid array width!")}return t.set(r),t}),r.crossfilter=m}(this);
|
data/crossfilter_rails.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: crossfilter_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Bostock
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-09-14 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: railties
|
|
@@ -53,6 +53,20 @@ dependencies:
|
|
|
53
53
|
- - '>='
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '3.1'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: pry
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - '>='
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
56
70
|
description: ' Rails gem for easily adding the crossfilter javascript library, which
|
|
57
71
|
is great for exploring multivariate datasets '
|
|
58
72
|
email:
|
|
@@ -88,9 +102,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
88
102
|
version: '0'
|
|
89
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
104
|
requirements:
|
|
91
|
-
- - '
|
|
105
|
+
- - '>='
|
|
92
106
|
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
107
|
+
version: '0'
|
|
94
108
|
requirements: []
|
|
95
109
|
rubyforge_project:
|
|
96
110
|
rubygems_version: 2.0.5
|