d3_rails 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +2 -2
- data/lib/d3_rails/version.rb +1 -1
- data/vendor/assets/javascripts/d3.chart.js +0 -0
- data/vendor/assets/javascripts/d3.geo.js +0 -0
- data/vendor/assets/javascripts/d3.geom.js +4 -4
- data/vendor/assets/javascripts/d3.js +56 -9
- data/vendor/assets/javascripts/d3.layout.js +0 -0
- data/vendor/assets/javascripts/d3.time.js +44 -5
- data/vendor/assets/javascripts/d3_csv.js +0 -0
- metadata +8 -8
data/README.md
CHANGED
@@ -14,8 +14,8 @@ or you can use it to build dynamic pages (like jQuery).
|
|
14
14
|
|
15
15
|
# D3 Version
|
16
16
|
|
17
|
-
The current release of this gem is using **D3 v=2.7.
|
18
|
-
**Last Updated 2-
|
17
|
+
The current release of this gem is using **D3 v=2.7.4**
|
18
|
+
**Last Updated 2-2-2012**
|
19
19
|
|
20
20
|
# Included Javascripts
|
21
21
|
**minified js files are not included, since the rails asset pipeline sorta necessitates the compiling (and likely minifying) your js files for production**
|
data/lib/d3_rails/version.rb
CHANGED
File without changes
|
File without changes
|
@@ -192,16 +192,16 @@ d3.geom.polygon = function(coordinates) {
|
|
192
192
|
|
193
193
|
coordinates.centroid = function(k) {
|
194
194
|
var i = -1,
|
195
|
-
n = coordinates.length
|
195
|
+
n = coordinates.length,
|
196
196
|
x = 0,
|
197
197
|
y = 0,
|
198
198
|
a,
|
199
|
-
b,
|
199
|
+
b = coordinates[n - 1],
|
200
200
|
c;
|
201
201
|
if (!arguments.length) k = -1 / (6 * coordinates.area());
|
202
202
|
while (++i < n) {
|
203
|
-
a =
|
204
|
-
b = coordinates[i
|
203
|
+
a = b;
|
204
|
+
b = coordinates[i];
|
205
205
|
c = a[0] * b[1] - b[0] * a[1];
|
206
206
|
x += (a[0] + b[0]) * c;
|
207
207
|
y += (a[1] + b[1]) * c;
|
@@ -10,7 +10,7 @@ try {
|
|
10
10
|
d3_style_setProperty.call(this, name, value + "", priority);
|
11
11
|
};
|
12
12
|
}
|
13
|
-
d3 = {version: "2.7.
|
13
|
+
d3 = {version: "2.7.4"}; // semver
|
14
14
|
var d3_array = d3_arraySlice; // conversion for NodeLists
|
15
15
|
|
16
16
|
function d3_arrayCopy(pseudoarray) {
|
@@ -489,7 +489,7 @@ d3.dispatch = function() {
|
|
489
489
|
var dispatch = new d3_dispatch(),
|
490
490
|
i = -1,
|
491
491
|
n = arguments.length;
|
492
|
-
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
|
492
|
+
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
|
493
493
|
return dispatch;
|
494
494
|
};
|
495
495
|
|
@@ -507,22 +507,23 @@ d3_dispatch.prototype.on = function(type, listener) {
|
|
507
507
|
|
508
508
|
return arguments.length < 2
|
509
509
|
? this[type].on(name)
|
510
|
-
:
|
510
|
+
: this[type].on(name, listener);
|
511
511
|
};
|
512
512
|
|
513
|
-
function d3_dispatch_event() {
|
513
|
+
function d3_dispatch_event(dispatch) {
|
514
514
|
var listeners = [],
|
515
515
|
listenerByName = {};
|
516
516
|
|
517
|
-
function
|
517
|
+
function event() {
|
518
518
|
var z = listeners, // defensive reference
|
519
519
|
i = -1,
|
520
520
|
n = z.length,
|
521
521
|
l;
|
522
522
|
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
|
523
|
+
return dispatch;
|
523
524
|
}
|
524
525
|
|
525
|
-
|
526
|
+
event.on = function(name, listener) {
|
526
527
|
var l, i;
|
527
528
|
|
528
529
|
// return the current listener, if any
|
@@ -543,7 +544,7 @@ function d3_dispatch_event() {
|
|
543
544
|
return dispatch;
|
544
545
|
};
|
545
546
|
|
546
|
-
return
|
547
|
+
return event;
|
547
548
|
};
|
548
549
|
// TODO align
|
549
550
|
d3.format = function(specifier) {
|
@@ -894,7 +895,54 @@ d3.interpolateString = function(a, b) {
|
|
894
895
|
};
|
895
896
|
|
896
897
|
d3.interpolateTransform = function(a, b) {
|
897
|
-
|
898
|
+
var s = [], // string constants and placeholders
|
899
|
+
q = [], // number interpolators
|
900
|
+
n,
|
901
|
+
A = d3.transform(a),
|
902
|
+
B = d3.transform(b),
|
903
|
+
ta = A.translate,
|
904
|
+
tb = B.translate,
|
905
|
+
ra = A.rotate,
|
906
|
+
rb = B.rotate,
|
907
|
+
wa = A.skew,
|
908
|
+
wb = B.skew,
|
909
|
+
ka = A.scale,
|
910
|
+
kb = B.scale;
|
911
|
+
|
912
|
+
if (ta[0] != tb[0] || ta[1] != tb[1]) {
|
913
|
+
s.push("translate(", null, ",", null, ")");
|
914
|
+
q.push({i: 1, x: d3.interpolateNumber(ta[0], tb[0])}, {i: 3, x: d3.interpolateNumber(ta[1], tb[1])});
|
915
|
+
} else if (tb[0] || tb[1]) {
|
916
|
+
s.push("translate(" + tb + ")");
|
917
|
+
} else {
|
918
|
+
s.push("");
|
919
|
+
}
|
920
|
+
|
921
|
+
if (ra != rb) {
|
922
|
+
q.push({i: s.push(s.pop() + "rotate(", null, ")") - 2, x: d3.interpolateNumber(ra, rb)});
|
923
|
+
} else if (rb) {
|
924
|
+
s.push(s.pop() + "rotate(" + rb + ")");
|
925
|
+
}
|
926
|
+
|
927
|
+
if (wa != wb) {
|
928
|
+
q.push({i: s.push(s.pop() + "skewX(", null, ")") - 2, x: d3.interpolateNumber(wa, wb)});
|
929
|
+
} else if (wb) {
|
930
|
+
s.push(s.pop() + "skewX(" + wb + ")");
|
931
|
+
}
|
932
|
+
|
933
|
+
if (ka[0] != kb[0] || ka[1] != kb[1]) {
|
934
|
+
n = s.push(s.pop() + "scale(", null, ",", null, ")");
|
935
|
+
q.push({i: n - 4, x: d3.interpolateNumber(ka[0], kb[0])}, {i: n - 2, x: d3.interpolateNumber(ka[1], kb[1])});
|
936
|
+
} else if (kb[0] != 1 || kb[1] != 1) {
|
937
|
+
s.push(s.pop() + "scale(" + kb + ")");
|
938
|
+
}
|
939
|
+
|
940
|
+
n = q.length;
|
941
|
+
return function(t) {
|
942
|
+
var i = -1, o;
|
943
|
+
while (++i < n) s[(o = q[i]).i] = o.x(t);
|
944
|
+
return s.join("");
|
945
|
+
};
|
898
946
|
};
|
899
947
|
|
900
948
|
d3.interpolateRgb = function(a, b) {
|
@@ -2458,7 +2506,6 @@ function d3_scale_linearNice(dx) {
|
|
2458
2506
|
};
|
2459
2507
|
}
|
2460
2508
|
|
2461
|
-
// TODO Dates? Ugh.
|
2462
2509
|
function d3_scale_linearTickRange(domain, m) {
|
2463
2510
|
var extent = d3_scaleExtent(domain),
|
2464
2511
|
span = extent[1] - extent[0],
|
File without changes
|
@@ -552,13 +552,15 @@ function d3_time_scale(linear, methods, format) {
|
|
552
552
|
if (typeof m !== "function") {
|
553
553
|
var span = extent[1] - extent[0],
|
554
554
|
target = span / m,
|
555
|
-
i = d3.bisect(d3_time_scaleSteps, target
|
555
|
+
i = d3.bisect(d3_time_scaleSteps, target);
|
556
|
+
if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
|
557
|
+
if (!i) return linear.ticks(m).map(d3_time_scaleDate);
|
556
558
|
if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
|
557
559
|
m = methods[i];
|
558
560
|
k = m[1];
|
559
561
|
m = m[0];
|
560
562
|
}
|
561
|
-
return m(extent[0], extent[1], k);
|
563
|
+
return m(extent[0], new Date(+extent[1] + 1), k); // inclusive upper bound
|
562
564
|
};
|
563
565
|
|
564
566
|
scale.tickFormat = function() {
|
@@ -591,6 +593,19 @@ function d3_time_scaleFormat(formats) {
|
|
591
593
|
};
|
592
594
|
}
|
593
595
|
|
596
|
+
function d3_time_scaleSetYear(y) {
|
597
|
+
var d = new Date(y, 0, 1);
|
598
|
+
d.setFullYear(y); // Y2K fail
|
599
|
+
return d;
|
600
|
+
}
|
601
|
+
|
602
|
+
function d3_time_scaleGetYear(d) {
|
603
|
+
var y = d.getFullYear(),
|
604
|
+
d0 = d3_time_scaleSetYear(y),
|
605
|
+
d1 = d3_time_scaleSetYear(y + 1);
|
606
|
+
return y + (d - d0) / (d1 - d0);
|
607
|
+
}
|
608
|
+
|
594
609
|
var d3_time_scaleSteps = [
|
595
610
|
1e3, // 1-second
|
596
611
|
5e3, // 5-second
|
@@ -640,10 +655,16 @@ var d3_time_scaleLocalFormats = [
|
|
640
655
|
[d3.time.format("%a %d"), function(d) { return d.getDay() && d.getDate() != 1; }],
|
641
656
|
[d3.time.format("%I %p"), function(d) { return d.getHours(); }],
|
642
657
|
[d3.time.format("%I:%M"), function(d) { return d.getMinutes(); }],
|
643
|
-
[d3.time.format(":%S"), function(d) { return d.getSeconds()
|
658
|
+
[d3.time.format(":%S"), function(d) { return d.getSeconds(); }],
|
659
|
+
[d3.time.format(".%L"), function(d) { return d.getMilliseconds(); }]
|
644
660
|
];
|
645
661
|
|
646
|
-
var
|
662
|
+
var d3_time_scaleLinear = d3.scale.linear(),
|
663
|
+
d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
|
664
|
+
|
665
|
+
d3_time_scaleLocalMethods.year = function(extent, m) {
|
666
|
+
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
|
667
|
+
};
|
647
668
|
|
648
669
|
d3.time.scale = function() {
|
649
670
|
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
|
@@ -676,11 +697,29 @@ var d3_time_scaleUTCFormats = [
|
|
676
697
|
[d3.time.format.utc("%a %d"), function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }],
|
677
698
|
[d3.time.format.utc("%I %p"), function(d) { return d.getUTCHours(); }],
|
678
699
|
[d3.time.format.utc("%I:%M"), function(d) { return d.getUTCMinutes(); }],
|
679
|
-
[d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds()
|
700
|
+
[d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds(); }],
|
701
|
+
[d3.time.format.utc(".%L"), function(d) { return d.getUTCMilliseconds(); }]
|
680
702
|
];
|
681
703
|
|
682
704
|
var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
|
683
705
|
|
706
|
+
function d3_time_scaleUTCSetYear(y) {
|
707
|
+
var d = new Date(Date.UTC(y, 0, 1));
|
708
|
+
d.setUTCFullYear(y); // Y2K fail
|
709
|
+
return d;
|
710
|
+
}
|
711
|
+
|
712
|
+
function d3_time_scaleUTCGetYear(d) {
|
713
|
+
var y = d.getUTCFullYear(),
|
714
|
+
d0 = d3_time_scaleUTCSetYear(y),
|
715
|
+
d1 = d3_time_scaleUTCSetYear(y + 1);
|
716
|
+
return y + (d - d0) / (d1 - d0);
|
717
|
+
}
|
718
|
+
|
719
|
+
d3_time_scaleUTCMethods.year = function(extent, m) {
|
720
|
+
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
|
721
|
+
};
|
722
|
+
|
684
723
|
d3.time.scale.utc = function() {
|
685
724
|
return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
|
686
725
|
};
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: d3_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-03 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
16
|
-
requirement: &
|
16
|
+
requirement: &70233621458080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70233621458080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70233621457580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70233621457580
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rails
|
38
|
-
requirement: &
|
38
|
+
requirement: &70233621457120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '3.1'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70233621457120
|
47
47
|
description: Gem installation of javascript framework for data visualization, D3
|
48
48
|
email:
|
49
49
|
- han@logicallsat.com
|