chartx 0.0.1

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.
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: []