d3_rails 0.1.7 → 0.1.8
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.
- 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
|