crossfilter-rails 1.2.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/README.md +12 -0
- data/certs/bai.pem +20 -0
- data/crossfilter-rails.gemspec +4 -0
- data/lib/crossfilter-rails/version.rb +1 -1
- data/vendor/assets/javascripts/crossfilter.js +73 -9
- data/vendor/assets/javascripts/crossfilter.min.js +1 -1
- metadata +28 -5
- metadata.gz.sig +1 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83e206a8b0ebd30768e75d53ef8a679108b9a6b5
|
4
|
+
data.tar.gz: 755e13bb4567aa5f86549360b3b831cf25d1ded3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6743fae1c995332b84e68860d9dc9a86f3cf0ebdc455862bb3fb9d9dfd06c1e5bf32198b503d2c283951f51acef63d65e3ea8059de7085bb1c40c4443368f6bc
|
7
|
+
data.tar.gz: 1dc4083437d0747f9da682ecacfed1d2d1f645f0979c251e318ea92075d68e6fb969d2d2b0ebcc754eb1f565657a9451b9d010b427443300c1b58d58387ffb28
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
ADDED
Binary file
|
data/README.md
CHANGED
@@ -18,6 +18,18 @@ Add the following directive to your JavaScript manifest file (application.js):
|
|
18
18
|
|
19
19
|
//= require crossfilter
|
20
20
|
|
21
|
+
|
22
|
+
## HighSecurity
|
23
|
+
|
24
|
+
To ensure that you're including a gem with original code, you can install this gem using a HighSecurity policy.
|
25
|
+
|
26
|
+
gem cert --add <(curl -Ls https://gist.github.com/bai/5150087/raw/public_cert.pem)
|
27
|
+
bundle install --trust-policy HighSecurity
|
28
|
+
|
29
|
+
Or, if you don't use bundler:
|
30
|
+
|
31
|
+
gem install crossfilter-rails -P HighSecurity
|
32
|
+
|
21
33
|
## Contributing
|
22
34
|
|
23
35
|
1. Fork it
|
data/certs/bai.pem
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDSDCCAjCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA1MQowCAYDVQQDDAF2MRMw
|
3
|
+
EQYKCZImiZPyLGQBGRYDZ29yMRIwEAYKCZImiZPyLGQBGRYCaW8wHhcNMTMwNTIz
|
4
|
+
MjA0MTI3WhcNMTQwNTIzMjA0MTI3WjA1MQowCAYDVQQDDAF2MRMwEQYKCZImiZPy
|
5
|
+
LGQBGRYDZ29yMRIwEAYKCZImiZPyLGQBGRYCaW8wggEiMA0GCSqGSIb3DQEBAQUA
|
6
|
+
A4IBDwAwggEKAoIBAQCtb8+GfjqcYl6M4IhIGomKsGgWEC4mwTXIq/Yl+jJAdP7s
|
7
|
+
bdV3lWnZybUPKtdHSQIJcxbm8GZspTqSqDgsECI/laTyLj7Srqcbyivf/ov50Tg1
|
8
|
+
CxMtt8STA6wNmY0ljO4SK72Pr8uQwFZIgNHBB9LcvrpmRn/TWDXlcqaq0db6QJKk
|
9
|
+
jGOv74ukiQun+saqthpxwNN6wm0rj1GDulrDuMeeMj/XDgu0piNHhBtsgQ6KrN94
|
10
|
+
cs0XGgwKihL0LdqWiOG9L8tZKeksKk72EcTpvaw1EYUfJ/rAcC8l6SluN2+BDMA0
|
11
|
+
/4LU70O+wTwHcHv2HimtKdlcpS936qOez3lXUD+3AgMBAAGjYzBhMAkGA1UdEwQC
|
12
|
+
MAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSRvHatldjBIKT5agA2bnkfm4KUxTAT
|
13
|
+
BgNVHREEDDAKgQh2QGdvci5pbzATBgNVHRIEDDAKgQh2QGdvci5pbzANBgkqhkiG
|
14
|
+
9w0BAQUFAAOCAQEAmyGZCL6ISHS6UCkPAie1LZgyc+yS4ckMPtzBJtjODr5kfRTC
|
15
|
+
tLb9W4epJ9Aa2aGkKy/NL8MFS0BwTJmjSfufFDwFZlw0kI9aAvL4Nx9OHWNen9Dm
|
16
|
+
GtEWXXKpB0du12DBjfavJYl0QLcz18M0mtvug634t40H06GussO83uu7wHEvIPBP
|
17
|
+
Z5VMAbKvOmDgaP2I9XxZ2/lDmBKDZkVNqmqYiScw2CWsKxVPx3vhMGprTIz4O8y/
|
18
|
+
JCf887eMZl/8mEIeCLb+gH5sh5yJJpti2HTLnR4Q1QKWR/0T9tASoQPF3kL62n9+
|
19
|
+
m1B90+fEzJsBDQIAsnLPqxjivWbIIfZ7GeGZyA==
|
20
|
+
-----END CERTIFICATE-----
|
data/crossfilter-rails.gemspec
CHANGED
@@ -11,11 +11,15 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.description = %q{Fast n-dimensional filtering and grouping of records.}
|
12
12
|
gem.summary = %q{Gemified crossfilter.js asset for Rails}
|
13
13
|
gem.homepage = "http://github.com/bai/crossfilter-rails"
|
14
|
+
gem.licenses = ["MIT"]
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
19
|
gem.require_paths = ["lib"]
|
19
20
|
|
21
|
+
gem.signing_key = File.expand_path("~/.gem/private_key.pem") if $0 =~ /gem\z/
|
22
|
+
gem.cert_chain = ["certs/bai.pem"]
|
23
|
+
|
20
24
|
gem.add_dependency "railties", ">= 3.0", "< 5.0"
|
21
25
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
(function(exports){
|
2
|
-
crossfilter.version = "1.
|
2
|
+
crossfilter.version = "1.3.1";
|
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,21 @@ 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]]) {
|
702
|
+
if (i !== j) values[j] = values[i], index[j] = reIndex[k];
|
703
|
+
++j;
|
704
|
+
}
|
705
|
+
}
|
706
|
+
values.length = j;
|
707
|
+
while (j < n) index[j++] = 0;
|
708
|
+
|
709
|
+
// Bisect again to recompute lo0 and hi0.
|
710
|
+
var bounds = refilter(values);
|
711
|
+
lo0 = bounds[0], hi0 = bounds[1];
|
712
|
+
}
|
713
|
+
|
667
714
|
// Updates the selected values based on the specified bounds [lo, hi].
|
668
715
|
// This implementation is used by all the public filter methods.
|
669
716
|
function filterIndexBounds(bounds) {
|
@@ -818,7 +865,8 @@ function crossfilter() {
|
|
818
865
|
order: order,
|
819
866
|
orderNatural: orderNatural,
|
820
867
|
size: size,
|
821
|
-
|
868
|
+
dispose: dispose,
|
869
|
+
remove: dispose // for backwards-compatibility
|
822
870
|
};
|
823
871
|
|
824
872
|
// Ensure that this group will be removed when the dimension is removed.
|
@@ -845,6 +893,7 @@ function crossfilter() {
|
|
845
893
|
// the parent dimension for when data is added, and compute new keys.
|
846
894
|
filterListeners.push(update);
|
847
895
|
indexListeners.push(add);
|
896
|
+
removeDataListeners.push(removeData);
|
848
897
|
|
849
898
|
// Incorporate any existing data into the grouping.
|
850
899
|
add(values, index, 0, n);
|
@@ -958,6 +1007,15 @@ function crossfilter() {
|
|
958
1007
|
}
|
959
1008
|
}
|
960
1009
|
|
1010
|
+
function removeData() {
|
1011
|
+
for (var i = 0, j = 0; i < n; ++i) {
|
1012
|
+
if (filters[i]) {
|
1013
|
+
if (i !== j) groupIndex[j] = groupIndex[i];
|
1014
|
+
++j;
|
1015
|
+
}
|
1016
|
+
}
|
1017
|
+
}
|
1018
|
+
|
961
1019
|
// Reduces the specified selected or deselected records.
|
962
1020
|
// This function is only used when the cardinality is greater than 1.
|
963
1021
|
function updateMany(filterOne, added, removed) {
|
@@ -1098,11 +1156,13 @@ function crossfilter() {
|
|
1098
1156
|
}
|
1099
1157
|
|
1100
1158
|
// Removes this group and associated event listeners.
|
1101
|
-
function
|
1159
|
+
function dispose() {
|
1102
1160
|
var i = filterListeners.indexOf(update);
|
1103
1161
|
if (i >= 0) filterListeners.splice(i, 1);
|
1104
1162
|
i = indexListeners.indexOf(add);
|
1105
1163
|
if (i >= 0) indexListeners.splice(i, 1);
|
1164
|
+
i = removeDataListeners.indexOf(removeData);
|
1165
|
+
if (i >= 0) removeDataListeners.splice(i, 1);
|
1106
1166
|
return group;
|
1107
1167
|
}
|
1108
1168
|
|
@@ -1121,12 +1181,15 @@ function crossfilter() {
|
|
1121
1181
|
return g;
|
1122
1182
|
}
|
1123
1183
|
|
1124
|
-
|
1125
|
-
|
1184
|
+
// Removes this dimension and associated groups and event listeners.
|
1185
|
+
function dispose() {
|
1186
|
+
dimensionGroups.forEach(function(group) { group.dispose(); });
|
1126
1187
|
var i = dataListeners.indexOf(preAdd);
|
1127
1188
|
if (i >= 0) dataListeners.splice(i, 1);
|
1128
1189
|
i = dataListeners.indexOf(postAdd);
|
1129
1190
|
if (i >= 0) dataListeners.splice(i, 1);
|
1191
|
+
i = removeDataListeners.indexOf(removeData);
|
1192
|
+
if (i >= 0) removeDataListeners.splice(i, 1);
|
1130
1193
|
for (i = 0; i < n; ++i) filters[i] &= zero;
|
1131
1194
|
m &= zero;
|
1132
1195
|
return dimension;
|
@@ -1143,7 +1206,8 @@ function crossfilter() {
|
|
1143
1206
|
reduceCount: reduceCount,
|
1144
1207
|
reduceSum: reduceSum,
|
1145
1208
|
value: value,
|
1146
|
-
|
1209
|
+
dispose: dispose,
|
1210
|
+
remove: dispose // for backwards-compatibility
|
1147
1211
|
};
|
1148
1212
|
|
1149
1213
|
var reduceValue,
|
@@ -1238,7 +1302,7 @@ function crossfilter() {
|
|
1238
1302
|
}
|
1239
1303
|
|
1240
1304
|
// Removes this group and associated event listeners.
|
1241
|
-
function
|
1305
|
+
function dispose() {
|
1242
1306
|
var i = filterListeners.indexOf(update);
|
1243
1307
|
if (i >= 0) filterListeners.splice(i);
|
1244
1308
|
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.1",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);
|
metadata
CHANGED
@@ -1,14 +1,35 @@
|
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vlad Gorodetsky
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDSDCCAjCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA1MQowCAYDVQQDDAF2MRMw
|
14
|
+
EQYKCZImiZPyLGQBGRYDZ29yMRIwEAYKCZImiZPyLGQBGRYCaW8wHhcNMTMwNTIz
|
15
|
+
MjA0MTI3WhcNMTQwNTIzMjA0MTI3WjA1MQowCAYDVQQDDAF2MRMwEQYKCZImiZPy
|
16
|
+
LGQBGRYDZ29yMRIwEAYKCZImiZPyLGQBGRYCaW8wggEiMA0GCSqGSIb3DQEBAQUA
|
17
|
+
A4IBDwAwggEKAoIBAQCtb8+GfjqcYl6M4IhIGomKsGgWEC4mwTXIq/Yl+jJAdP7s
|
18
|
+
bdV3lWnZybUPKtdHSQIJcxbm8GZspTqSqDgsECI/laTyLj7Srqcbyivf/ov50Tg1
|
19
|
+
CxMtt8STA6wNmY0ljO4SK72Pr8uQwFZIgNHBB9LcvrpmRn/TWDXlcqaq0db6QJKk
|
20
|
+
jGOv74ukiQun+saqthpxwNN6wm0rj1GDulrDuMeeMj/XDgu0piNHhBtsgQ6KrN94
|
21
|
+
cs0XGgwKihL0LdqWiOG9L8tZKeksKk72EcTpvaw1EYUfJ/rAcC8l6SluN2+BDMA0
|
22
|
+
/4LU70O+wTwHcHv2HimtKdlcpS936qOez3lXUD+3AgMBAAGjYzBhMAkGA1UdEwQC
|
23
|
+
MAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBSRvHatldjBIKT5agA2bnkfm4KUxTAT
|
24
|
+
BgNVHREEDDAKgQh2QGdvci5pbzATBgNVHRIEDDAKgQh2QGdvci5pbzANBgkqhkiG
|
25
|
+
9w0BAQUFAAOCAQEAmyGZCL6ISHS6UCkPAie1LZgyc+yS4ckMPtzBJtjODr5kfRTC
|
26
|
+
tLb9W4epJ9Aa2aGkKy/NL8MFS0BwTJmjSfufFDwFZlw0kI9aAvL4Nx9OHWNen9Dm
|
27
|
+
GtEWXXKpB0du12DBjfavJYl0QLcz18M0mtvug634t40H06GussO83uu7wHEvIPBP
|
28
|
+
Z5VMAbKvOmDgaP2I9XxZ2/lDmBKDZkVNqmqYiScw2CWsKxVPx3vhMGprTIz4O8y/
|
29
|
+
JCf887eMZl/8mEIeCLb+gH5sh5yJJpti2HTLnR4Q1QKWR/0T9tASoQPF3kL62n9+
|
30
|
+
m1B90+fEzJsBDQIAsnLPqxjivWbIIfZ7GeGZyA==
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
date: 2013-09-02 00:00:00.000000000 Z
|
12
33
|
dependencies:
|
13
34
|
- !ruby/object:Gem::Dependency
|
14
35
|
name: railties
|
@@ -42,13 +63,15 @@ files:
|
|
42
63
|
- LICENSE
|
43
64
|
- README.md
|
44
65
|
- Rakefile
|
66
|
+
- certs/bai.pem
|
45
67
|
- crossfilter-rails.gemspec
|
46
68
|
- lib/crossfilter-rails.rb
|
47
69
|
- lib/crossfilter-rails/version.rb
|
48
70
|
- vendor/assets/javascripts/crossfilter.js
|
49
71
|
- vendor/assets/javascripts/crossfilter.min.js
|
50
72
|
homepage: http://github.com/bai/crossfilter-rails
|
51
|
-
licenses:
|
73
|
+
licenses:
|
74
|
+
- MIT
|
52
75
|
metadata: {}
|
53
76
|
post_install_message:
|
54
77
|
rdoc_options: []
|
@@ -66,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
89
|
version: '0'
|
67
90
|
requirements: []
|
68
91
|
rubyforge_project:
|
69
|
-
rubygems_version: 2.0.
|
92
|
+
rubygems_version: 2.0.3
|
70
93
|
signing_key:
|
71
94
|
specification_version: 4
|
72
95
|
summary: Gemified crossfilter.js asset for Rails
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0Z�g�2���D��X ���\�z���aUƛz�z�]�%NO�е�G�؞��/~_��6ŵl��/�bjE�{<�.�[J0�^׆��$T�Ezm����dq��Ԍ�P��a��x$��~�"֔o�046:���<���~�V�߷��.63y���Sϕ?�s���wy~$ �l��r�P�t/��:�V�do?��]��v�0ڔN���S2^�y����~�$�_���f�������`��4����*
|