chartx 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/.gitignore +17 -0
  2. data/.gitmodules +3 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +145 -0
  6. data/Rakefile +1 -0
  7. data/chartx.gemspec +40 -0
  8. data/lib/chartx/engine.rb +11 -0
  9. data/lib/chartx/helper.rb +184 -0
  10. data/lib/chartx/version.rb +3 -0
  11. data/lib/chartx.rb +3 -0
  12. data/screenshots/barchart.png +0 -0
  13. data/screenshots/bulletchart.png +0 -0
  14. data/screenshots/horizontalbarchart.png +0 -0
  15. data/screenshots/linechart.png +0 -0
  16. data/screenshots/linewithfocuschart.png +0 -0
  17. data/screenshots/multibarchart2.png +0 -0
  18. data/screenshots/piechart.png +0 -0
  19. data/screenshots/scatterchart.png +0 -0
  20. data/screenshots/stackedareachart.png +0 -0
  21. data/screenshots/stackedareachart3.png +0 -0
  22. data/vendor/assets/javascripts/chartx-core.js +9 -0
  23. data/vendor/assets/javascripts/chartx-models.js +2 -0
  24. data/vendor/assets/javascripts/nvd3/.gitignore +27 -0
  25. data/vendor/assets/javascripts/nvd3/.jshintrc +3 -0
  26. data/vendor/assets/javascripts/nvd3/LICENSE.md +49 -0
  27. data/vendor/assets/javascripts/nvd3/README.md +1 -0
  28. data/vendor/assets/javascripts/nvd3/lib/cie.js +155 -0
  29. data/vendor/assets/javascripts/nvd3/lib/crossfilter.js +1180 -0
  30. data/vendor/assets/javascripts/nvd3/lib/crossfilter.min.js +1 -0
  31. data/vendor/assets/javascripts/nvd3/lib/d3.js +8798 -0
  32. data/vendor/assets/javascripts/nvd3/lib/d3.min.js +5 -0
  33. data/vendor/assets/javascripts/nvd3/lib/fisheye.js +86 -0
  34. data/vendor/assets/javascripts/nvd3/lib/hive.js +80 -0
  35. data/vendor/assets/javascripts/nvd3/lib/horizon.js +192 -0
  36. data/vendor/assets/javascripts/nvd3/lib/sankey.js +292 -0
  37. data/vendor/assets/javascripts/nvd3/nv.d3.js +13048 -0
  38. data/vendor/assets/javascripts/nvd3/nv.d3.min.js +6 -0
  39. data/vendor/assets/javascripts/nvd3/src/core.js +118 -0
  40. data/vendor/assets/javascripts/nvd3/src/intro.js +1 -0
  41. data/vendor/assets/javascripts/nvd3/src/models/axis.js +398 -0
  42. data/vendor/assets/javascripts/nvd3/src/models/boilerplate.js +102 -0
  43. data/vendor/assets/javascripts/nvd3/src/models/bullet.js +377 -0
  44. data/vendor/assets/javascripts/nvd3/src/models/bulletChart.js +341 -0
  45. data/vendor/assets/javascripts/nvd3/src/models/cumulativeLineChart.js +685 -0
  46. data/vendor/assets/javascripts/nvd3/src/models/discreteBar.js +327 -0
  47. data/vendor/assets/javascripts/nvd3/src/models/discreteBarChart.js +290 -0
  48. data/vendor/assets/javascripts/nvd3/src/models/distribution.js +146 -0
  49. data/vendor/assets/javascripts/nvd3/src/models/historicalBar.js +289 -0
  50. data/vendor/assets/javascripts/nvd3/src/models/historicalBarChart.js +421 -0
  51. data/vendor/assets/javascripts/nvd3/src/models/indentedTree.js +317 -0
  52. data/vendor/assets/javascripts/nvd3/src/models/legend.js +207 -0
  53. data/vendor/assets/javascripts/nvd3/src/models/line.js +284 -0
  54. data/vendor/assets/javascripts/nvd3/src/models/lineChart.js +421 -0
  55. data/vendor/assets/javascripts/nvd3/src/models/linePlusBarChart.js +455 -0
  56. data/vendor/assets/javascripts/nvd3/src/models/linePlusBarWithFocusChart.js +665 -0
  57. data/vendor/assets/javascripts/nvd3/src/models/lineWithFisheye.js +197 -0
  58. data/vendor/assets/javascripts/nvd3/src/models/lineWithFisheyeChart.js +319 -0
  59. data/vendor/assets/javascripts/nvd3/src/models/lineWithFocusChart.js +560 -0
  60. data/vendor/assets/javascripts/nvd3/src/models/multiBar.js +442 -0
  61. data/vendor/assets/javascripts/nvd3/src/models/multiBarChart.js +506 -0
  62. data/vendor/assets/javascripts/nvd3/src/models/multiBarHorizontal.js +420 -0
  63. data/vendor/assets/javascripts/nvd3/src/models/multiBarHorizontalChart.js +448 -0
  64. data/vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeries.js +371 -0
  65. data/vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeriesChart.js +403 -0
  66. data/vendor/assets/javascripts/nvd3/src/models/multiChart.js +444 -0
  67. data/vendor/assets/javascripts/nvd3/src/models/ohlcBar.js +365 -0
  68. data/vendor/assets/javascripts/nvd3/src/models/parallelCoordinates.js +238 -0
  69. data/vendor/assets/javascripts/nvd3/src/models/pie.js +386 -0
  70. data/vendor/assets/javascripts/nvd3/src/models/pieChart.js +302 -0
  71. data/vendor/assets/javascripts/nvd3/src/models/scatter.js +660 -0
  72. data/vendor/assets/javascripts/nvd3/src/models/scatterChart.js +614 -0
  73. data/vendor/assets/javascripts/nvd3/src/models/scatterPlusLineChart.js +610 -0
  74. data/vendor/assets/javascripts/nvd3/src/models/sparkline.js +179 -0
  75. data/vendor/assets/javascripts/nvd3/src/models/sparklinePlus.js +293 -0
  76. data/vendor/assets/javascripts/nvd3/src/models/stackedArea.js +336 -0
  77. data/vendor/assets/javascripts/nvd3/src/models/stackedAreaChart.js +490 -0
  78. data/vendor/assets/javascripts/nvd3/src/nv.d3.css +704 -0
  79. data/vendor/assets/javascripts/nvd3/src/outro.js +1 -0
  80. data/vendor/assets/javascripts/nvd3/src/tooltip.js +133 -0
  81. data/vendor/assets/javascripts/nvd3/src/utils.js +118 -0
  82. data/vendor/assets/javascripts/set-env.js.erb +1 -0
  83. data/vendor/assets/stylesheets/chartx.css +3 -0
  84. metadata +189 -0
@@ -0,0 +1,133 @@
1
+
2
+ /*****
3
+ * A no-frills tooltip implementation.
4
+ *****/
5
+
6
+
7
+ (function() {
8
+
9
+ var nvtooltip = window.nv.tooltip = {};
10
+
11
+ nvtooltip.show = function(pos, content, gravity, dist, parentContainer, classes) {
12
+
13
+ var container = document.createElement('div');
14
+ container.className = 'nvtooltip ' + (classes ? classes : 'xy-tooltip');
15
+
16
+ gravity = gravity || 's';
17
+ dist = dist || 20;
18
+
19
+ var body = parentContainer;
20
+ if ( !parentContainer || parentContainer.tagName.match(/g|svg/i)) {
21
+ //If the parent element is an SVG element, place tooltip in the <body> element.
22
+ body = document.getElementsByTagName('body')[0];
23
+ }
24
+
25
+ container.innerHTML = content;
26
+ container.style.left = 0;
27
+ container.style.top = 0;
28
+ container.style.opacity = 0;
29
+
30
+ body.appendChild(container);
31
+
32
+ var height = parseInt(container.offsetHeight),
33
+ width = parseInt(container.offsetWidth),
34
+ windowWidth = nv.utils.windowSize().width,
35
+ windowHeight = nv.utils.windowSize().height,
36
+ scrollTop = window.scrollY,
37
+ scrollLeft = window.scrollX,
38
+ left, top;
39
+
40
+ windowHeight = window.innerWidth >= document.body.scrollWidth ? windowHeight : windowHeight - 16;
41
+ windowWidth = window.innerHeight >= document.body.scrollHeight ? windowWidth : windowWidth - 16;
42
+
43
+ var tooltipTop = function ( Elem ) {
44
+ var offsetTop = top;
45
+ do {
46
+ if( !isNaN( Elem.offsetTop ) ) {
47
+ offsetTop += (Elem.offsetTop);
48
+ }
49
+ } while( Elem = Elem.offsetParent );
50
+ return offsetTop;
51
+ }
52
+
53
+ var tooltipLeft = function ( Elem ) {
54
+ var offsetLeft = left;
55
+ do {
56
+ if( !isNaN( Elem.offsetLeft ) ) {
57
+ offsetLeft += (Elem.offsetLeft);
58
+ }
59
+ } while( Elem = Elem.offsetParent );
60
+ return offsetLeft;
61
+ }
62
+
63
+ switch (gravity) {
64
+ case 'e':
65
+ left = pos[0] - width - dist;
66
+ top = pos[1] - (height / 2);
67
+ var tLeft = tooltipLeft(container);
68
+ var tTop = tooltipTop(container);
69
+ if (tLeft < scrollLeft) left = pos[0] + dist > scrollLeft ? pos[0] + dist : scrollLeft - tLeft + left;
70
+ if (tTop < scrollTop) top = scrollTop - tTop + top;
71
+ if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
72
+ break;
73
+ case 'w':
74
+ left = pos[0] + dist;
75
+ top = pos[1] - (height / 2);
76
+ if (tLeft + width > windowWidth) left = pos[0] - width - dist;
77
+ if (tTop < scrollTop) top = scrollTop + 5;
78
+ if (tTop + height > scrollTop + windowHeight) top = scrollTop - height - 5;
79
+ break;
80
+ case 'n':
81
+ left = pos[0] - (width / 2) - 5;
82
+ top = pos[1] + dist;
83
+ var tLeft = tooltipLeft(container);
84
+ var tTop = tooltipTop(container);
85
+ if (tLeft < scrollLeft) left = scrollLeft + 5;
86
+ if (tLeft + width > windowWidth) left = left - width/2 + 5;
87
+ if (tTop + height > scrollTop + windowHeight) top = scrollTop + windowHeight - tTop + top - height;
88
+ break;
89
+ case 's':
90
+ left = pos[0] - (width / 2);
91
+ top = pos[1] - height - dist;
92
+ var tLeft = tooltipLeft(container);
93
+ var tTop = tooltipTop(container);
94
+ if (tLeft < scrollLeft) left = scrollLeft + 5;
95
+ if (tLeft + width > windowWidth) left = left - width/2 + 5;
96
+ if (scrollTop > tTop) top = scrollTop;
97
+ break;
98
+ }
99
+
100
+
101
+ container.style.left = left+'px';
102
+ container.style.top = top+'px';
103
+ container.style.opacity = 1;
104
+ container.style.position = 'absolute'; //fix scroll bar issue
105
+ container.style.pointerEvents = 'none'; //fix scroll bar issue
106
+
107
+ return container;
108
+ };
109
+
110
+ nvtooltip.cleanup = function() {
111
+
112
+ // Find the tooltips, mark them for removal by this class (so others cleanups won't find it)
113
+ var tooltips = document.getElementsByClassName('nvtooltip');
114
+ var purging = [];
115
+ while(tooltips.length) {
116
+ purging.push(tooltips[0]);
117
+ tooltips[0].style.transitionDelay = '0 !important';
118
+ tooltips[0].style.opacity = 0;
119
+ tooltips[0].className = 'nvtooltip-pending-removal';
120
+ }
121
+
122
+
123
+ setTimeout(function() {
124
+
125
+ while (purging.length) {
126
+ var removeMe = purging.pop();
127
+ removeMe.parentNode.removeChild(removeMe);
128
+ }
129
+ }, 500);
130
+ };
131
+
132
+
133
+ })();
@@ -0,0 +1,118 @@
1
+
2
+ nv.utils.windowSize = function() {
3
+ // Sane defaults
4
+ var size = {width: 640, height: 480};
5
+
6
+ // Earlier IE uses Doc.body
7
+ if (document.body && document.body.offsetWidth) {
8
+ size.width = document.body.offsetWidth;
9
+ size.height = document.body.offsetHeight;
10
+ }
11
+
12
+ // IE can use depending on mode it is in
13
+ if (document.compatMode=='CSS1Compat' &&
14
+ document.documentElement &&
15
+ document.documentElement.offsetWidth ) {
16
+ size.width = document.documentElement.offsetWidth;
17
+ size.height = document.documentElement.offsetHeight;
18
+ }
19
+
20
+ // Most recent browsers use
21
+ if (window.innerWidth && window.innerHeight) {
22
+ size.width = window.innerWidth;
23
+ size.height = window.innerHeight;
24
+ }
25
+ return (size);
26
+ };
27
+
28
+
29
+
30
+ // Easy way to bind multiple functions to window.onresize
31
+ // TODO: give a way to remove a function after its bound, other than removing all of them
32
+ nv.utils.windowResize = function(fun){
33
+ var oldresize = window.onresize;
34
+
35
+ window.onresize = function(e) {
36
+ if (typeof oldresize == 'function') oldresize(e);
37
+ fun(e);
38
+ }
39
+ }
40
+
41
+ // Backwards compatible way to implement more d3-like coloring of graphs.
42
+ // If passed an array, wrap it in a function which implements the old default
43
+ // behavior
44
+ nv.utils.getColor = function(color) {
45
+ if (!arguments.length) return nv.utils.defaultColor(); //if you pass in nothing, get default colors back
46
+
47
+ if( Object.prototype.toString.call( color ) === '[object Array]' )
48
+ return function(d, i) { return d.color || color[i % color.length]; };
49
+ else
50
+ return color;
51
+ //can't really help it if someone passes rubbish as color
52
+ }
53
+
54
+ // Default color chooser uses the index of an object as before.
55
+ nv.utils.defaultColor = function() {
56
+ var colors = d3.scale.category20().range();
57
+ return function(d, i) { return d.color || colors[i % colors.length] };
58
+ }
59
+
60
+
61
+ // Returns a color function that takes the result of 'getKey' for each series and
62
+ // looks for a corresponding color from the dictionary,
63
+ nv.utils.customTheme = function(dictionary, getKey, defaultColors) {
64
+ getKey = getKey || function(series) { return series.key }; // use default series.key if getKey is undefined
65
+ defaultColors = defaultColors || d3.scale.category20().range(); //default color function
66
+
67
+ var defIndex = defaultColors.length; //current default color (going in reverse)
68
+
69
+ return function(series, index) {
70
+ var key = getKey(series);
71
+
72
+ if (!defIndex) defIndex = defaultColors.length; //used all the default colors, start over
73
+
74
+ if (typeof dictionary[key] !== "undefined")
75
+ return (typeof dictionary[key] === "function") ? dictionary[key]() : dictionary[key];
76
+ else
77
+ return defaultColors[--defIndex]; // no match in dictionary, use default color
78
+ }
79
+ }
80
+
81
+
82
+
83
+ // From the PJAX example on d3js.org, while this is not really directly needed
84
+ // it's a very cool method for doing pjax, I may expand upon it a little bit,
85
+ // open to suggestions on anything that may be useful
86
+ nv.utils.pjax = function(links, content) {
87
+ d3.selectAll(links).on("click", function() {
88
+ history.pushState(this.href, this.textContent, this.href);
89
+ load(this.href);
90
+ d3.event.preventDefault();
91
+ });
92
+
93
+ function load(href) {
94
+ d3.html(href, function(fragment) {
95
+ var target = d3.select(content).node();
96
+ target.parentNode.replaceChild(d3.select(fragment).select(content).node(), target);
97
+ nv.utils.pjax(links, content);
98
+ });
99
+ }
100
+
101
+ d3.select(window).on("popstate", function() {
102
+ if (d3.event.state) load(d3.event.state);
103
+ });
104
+ }
105
+
106
+ /* For situations where we want to approximate the width in pixels for an SVG:text element.
107
+ Most common instance is when the element is in a display:none; container.
108
+ Forumla is : text.length * font-size * constant_factor
109
+ */
110
+ nv.utils.calcApproxTextWidth = function (svgTextElem) {
111
+ if (svgTextElem instanceof d3.selection) {
112
+ var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
113
+ var textLength = svgTextElem.text().length;
114
+
115
+ return textLength * fontSize * 0.5;
116
+ }
117
+ return 0;
118
+ };
@@ -0,0 +1 @@
1
+ window.nv.dev = <%= Rails.env.development? ? true : false %>
@@ -0,0 +1,3 @@
1
+ /*
2
+ * *= require ../javascripts/nvd3/src/nv.d3.css
3
+ * */
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chartx
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Xianheng Ma
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-07-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: railties
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 3.2.0
54
+ - - <
55
+ - !ruby/object:Gem::Version
56
+ version: '5.0'
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: 3.2.0
65
+ - - <
66
+ - !ruby/object:Gem::Version
67
+ version: '5.0'
68
+ description: Generate beautiful charts in rails
69
+ email:
70
+ - xianheng.ma@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .gitmodules
77
+ - Gemfile
78
+ - LICENSE.txt
79
+ - README.md
80
+ - Rakefile
81
+ - chartx.gemspec
82
+ - lib/chartx.rb
83
+ - lib/chartx/engine.rb
84
+ - lib/chartx/helper.rb
85
+ - lib/chartx/version.rb
86
+ - screenshots/barchart.png
87
+ - screenshots/bulletchart.png
88
+ - screenshots/horizontalbarchart.png
89
+ - screenshots/linechart.png
90
+ - screenshots/linewithfocuschart.png
91
+ - screenshots/multibarchart2.png
92
+ - screenshots/piechart.png
93
+ - screenshots/scatterchart.png
94
+ - screenshots/stackedareachart.png
95
+ - screenshots/stackedareachart3.png
96
+ - vendor/assets/javascripts/chartx-core.js
97
+ - vendor/assets/javascripts/chartx-models.js
98
+ - vendor/assets/javascripts/set-env.js.erb
99
+ - vendor/assets/stylesheets/chartx.css
100
+ - vendor/assets/javascripts/nvd3/.gitignore
101
+ - vendor/assets/javascripts/nvd3/.jshintrc
102
+ - vendor/assets/javascripts/nvd3/LICENSE.md
103
+ - vendor/assets/javascripts/nvd3/README.md
104
+ - vendor/assets/javascripts/nvd3/lib/cie.js
105
+ - vendor/assets/javascripts/nvd3/lib/crossfilter.js
106
+ - vendor/assets/javascripts/nvd3/lib/crossfilter.min.js
107
+ - vendor/assets/javascripts/nvd3/lib/d3.js
108
+ - vendor/assets/javascripts/nvd3/lib/d3.min.js
109
+ - vendor/assets/javascripts/nvd3/lib/fisheye.js
110
+ - vendor/assets/javascripts/nvd3/lib/hive.js
111
+ - vendor/assets/javascripts/nvd3/lib/horizon.js
112
+ - vendor/assets/javascripts/nvd3/lib/sankey.js
113
+ - vendor/assets/javascripts/nvd3/nv.d3.js
114
+ - vendor/assets/javascripts/nvd3/nv.d3.min.js
115
+ - vendor/assets/javascripts/nvd3/src/core.js
116
+ - vendor/assets/javascripts/nvd3/src/intro.js
117
+ - vendor/assets/javascripts/nvd3/src/models/axis.js
118
+ - vendor/assets/javascripts/nvd3/src/models/boilerplate.js
119
+ - vendor/assets/javascripts/nvd3/src/models/bullet.js
120
+ - vendor/assets/javascripts/nvd3/src/models/bulletChart.js
121
+ - vendor/assets/javascripts/nvd3/src/models/cumulativeLineChart.js
122
+ - vendor/assets/javascripts/nvd3/src/models/discreteBar.js
123
+ - vendor/assets/javascripts/nvd3/src/models/discreteBarChart.js
124
+ - vendor/assets/javascripts/nvd3/src/models/distribution.js
125
+ - vendor/assets/javascripts/nvd3/src/models/historicalBar.js
126
+ - vendor/assets/javascripts/nvd3/src/models/historicalBarChart.js
127
+ - vendor/assets/javascripts/nvd3/src/models/indentedTree.js
128
+ - vendor/assets/javascripts/nvd3/src/models/legend.js
129
+ - vendor/assets/javascripts/nvd3/src/models/line.js
130
+ - vendor/assets/javascripts/nvd3/src/models/lineChart.js
131
+ - vendor/assets/javascripts/nvd3/src/models/linePlusBarChart.js
132
+ - vendor/assets/javascripts/nvd3/src/models/linePlusBarWithFocusChart.js
133
+ - vendor/assets/javascripts/nvd3/src/models/lineWithFisheye.js
134
+ - vendor/assets/javascripts/nvd3/src/models/lineWithFisheyeChart.js
135
+ - vendor/assets/javascripts/nvd3/src/models/lineWithFocusChart.js
136
+ - vendor/assets/javascripts/nvd3/src/models/multiBar.js
137
+ - vendor/assets/javascripts/nvd3/src/models/multiBarChart.js
138
+ - vendor/assets/javascripts/nvd3/src/models/multiBarHorizontal.js
139
+ - vendor/assets/javascripts/nvd3/src/models/multiBarHorizontalChart.js
140
+ - vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeries.js
141
+ - vendor/assets/javascripts/nvd3/src/models/multiBarTimeSeriesChart.js
142
+ - vendor/assets/javascripts/nvd3/src/models/multiChart.js
143
+ - vendor/assets/javascripts/nvd3/src/models/ohlcBar.js
144
+ - vendor/assets/javascripts/nvd3/src/models/parallelCoordinates.js
145
+ - vendor/assets/javascripts/nvd3/src/models/pie.js
146
+ - vendor/assets/javascripts/nvd3/src/models/pieChart.js
147
+ - vendor/assets/javascripts/nvd3/src/models/scatter.js
148
+ - vendor/assets/javascripts/nvd3/src/models/scatterChart.js
149
+ - vendor/assets/javascripts/nvd3/src/models/scatterPlusLineChart.js
150
+ - vendor/assets/javascripts/nvd3/src/models/sparkline.js
151
+ - vendor/assets/javascripts/nvd3/src/models/sparklinePlus.js
152
+ - vendor/assets/javascripts/nvd3/src/models/stackedArea.js
153
+ - vendor/assets/javascripts/nvd3/src/models/stackedAreaChart.js
154
+ - vendor/assets/javascripts/nvd3/src/nv.d3.css
155
+ - vendor/assets/javascripts/nvd3/src/outro.js
156
+ - vendor/assets/javascripts/nvd3/src/tooltip.js
157
+ - vendor/assets/javascripts/nvd3/src/utils.js
158
+ homepage: ''
159
+ licenses:
160
+ - MIT
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ! '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ segments:
172
+ - 0
173
+ hash: 3039926389988507501
174
+ required_rubygems_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ segments:
181
+ - 0
182
+ hash: 3039926389988507501
183
+ requirements: []
184
+ rubyforge_project:
185
+ rubygems_version: 1.8.25
186
+ signing_key:
187
+ specification_version: 3
188
+ summary: Generate beautiful charts in rails
189
+ test_files: []