html5jp_graphs 0.0.2 → 0.0.3

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 (26) hide show
  1. data/README.rdoc +4 -13
  2. data/lib/html5jp_graphs.rb +6 -0
  3. data/lib/html5jp_graphs/version.rb +1 -1
  4. data/vendor/assets/javascripts/html5jp_graphs.js +1 -0
  5. data/{lib/generators/html5jp_graphs/templates/graph → vendor/assets/javascripts/html5jp_graphs}/circle.js +0 -0
  6. data/{lib/generators/html5jp_graphs/templates/excanvas → vendor/assets/javascripts/html5jp_graphs}/excanvas-compressed.js +0 -0
  7. data/{lib/generators/html5jp_graphs/templates/excanvas → vendor/assets/javascripts/html5jp_graphs}/excanvas.js +0 -0
  8. data/{lib/generators/html5jp_graphs/templates/graph → vendor/assets/javascripts/html5jp_graphs}/line.js +0 -0
  9. data/{lib/generators/html5jp_graphs/templates/graph → vendor/assets/javascripts/html5jp_graphs}/radar.js +0 -0
  10. data/{lib/generators/html5jp_graphs/templates/graph → vendor/assets/javascripts/html5jp_graphs}/vbar.js +0 -0
  11. metadata +53 -44
  12. checksums.yaml +0 -15
  13. data/lib/generators/html5jp_graphs/USAGE +0 -8
  14. data/lib/generators/html5jp_graphs/html5jp_graphs_generator.rb +0 -12
  15. data/lib/generators/html5jp_graphs/templates/excanvas/AUTHORS +0 -10
  16. data/lib/generators/html5jp_graphs/templates/excanvas/COPYING +0 -202
  17. data/lib/generators/html5jp_graphs/templates/excanvas/README +0 -22
  18. data/lib/generators/html5jp_graphs/templates/excanvas/examples/example1.html +0 -93
  19. data/lib/generators/html5jp_graphs/templates/excanvas/examples/example2.html +0 -513
  20. data/lib/generators/html5jp_graphs/templates/excanvas/examples/example3.html +0 -284
  21. data/lib/generators/html5jp_graphs/templates/excanvas/examples/ff.jpg +0 -0
  22. data/lib/generators/html5jp_graphs/templates/excanvas/testcases/arc.html +0 -49
  23. data/lib/generators/html5jp_graphs/templates/excanvas/testcases/linewidth.html +0 -47
  24. data/lib/generators/html5jp_graphs/templates/excanvas/testcases/overflow.html +0 -37
  25. data/lib/generators/html5jp_graphs/templates/excanvas/testcases/quadraticcurve.html +0 -74
  26. data/lib/generators/html5jp_graphs/templates/excanvas/testcases/resizing.html +0 -65
@@ -1,284 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <!--
4
-
5
- Copyright 2006 Google Inc.
6
-
7
- Licensed under the Apache License, Version 2.0 (the "License");
8
- you may not use this file except in compliance with the License.
9
- You may obtain a copy of the License at
10
-
11
- http://www.apache.org/licenses/LICENSE-2.0
12
-
13
- Unless required by applicable law or agreed to in writing, software
14
- distributed under the License is distributed on an "AS IS" BASIS,
15
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- See the License for the specific language governing permissions and
17
- limitations under the License.
18
-
19
- -->
20
-
21
- <html>
22
- <head>
23
- <title></title>
24
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
25
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
26
- <style type="text/css">
27
-
28
- body {
29
- overflow: hidden;
30
- width: 100%;
31
- height: 100%;
32
- margin: 0;
33
- }
34
-
35
- #image-rotator {
36
- position: absolute;
37
- left: 0;
38
- top: 0;
39
- width: 100%;
40
- height: 100%;
41
- }
42
-
43
- #image-rotator .tool-bar {
44
- text-align: center;
45
- }
46
-
47
- .tool-bar button {
48
- margin: 0.5em 0.5em 0 0;
49
- }
50
-
51
- #image-rotator img,
52
- #image-rotator canvas {
53
- position: absolute;
54
- }
55
-
56
- </style>
57
- <script type="text/javascript">
58
-
59
- function sawFunc(a) {
60
- var PI = Math.PI;
61
- var PI2 = PI / 2;
62
- // make sure a is within 0 to PI
63
- a = a % PI;
64
- if (a < 0) {
65
- a += PI;
66
- }
67
- if (a < PI2) {
68
- return a / PI2;
69
- } else {
70
- return (PI - a) / PI2;
71
- }
72
- }
73
-
74
- function easeInEaseOut(t) {
75
- var t2 = t * t;
76
- return 3 * t2 - 2 * t * t2;
77
- }
78
-
79
- function ImageRotator(el, src, w, h) {
80
- this.element = el;
81
- this.toolBar = el.getElementsByTagName("div")[0];
82
- this.canvas = el.getElementsByTagName("canvas")[0];
83
- var images = el.getElementsByTagName("img");
84
- this.image = images[images.length - 1];
85
- var btns = el.getElementsByTagName("button");
86
- this.btnCw = btns[0];
87
- this.btnCcw = btns[1];
88
- var self = this;
89
- this.btnCcw.onclick = function () {
90
- self.rotateCcw();
91
- };
92
- this.btnCw.onclick = function () {
93
- self.rotateCw();
94
- };
95
- this.image.onload = function (e) {
96
- self.onImageLoad(e);
97
- };
98
- this.image.onerror = function (e) {
99
- self.onImageError(e);
100
- };
101
- this.image.onabort = function (e) {
102
- self.onImageAbort(e);
103
- };
104
- this.setImage(src, w, h);
105
- this.layout();
106
-
107
- var onResize = function () {
108
- self.layout();
109
- };
110
- var onLoad = function () {
111
- self.onWindowLoad();
112
- };
113
- if (window.addEventListener) {
114
- window.addEventListener("resize", onResize, false);
115
- window.addEventListener("load", onLoad, false);
116
- } else if (window.attachEvent) {
117
- window.attachEvent("onresize", onResize);
118
- window.attachEvent("onload", onLoad);
119
- }
120
- }
121
-
122
- ImageRotator.prototype = {
123
- getLoaded: function () {
124
- return this.imageLoaded && this.windowLoaded;
125
- },
126
- setImage: function (src, w, h) {
127
- this.imageLoaded = false;
128
- this.image.src = src;
129
- this.imageWidth = w;
130
- this.imageHeight = h;
131
- },
132
-
133
- layout: function () {
134
- var PI2 = Math.PI / 2;
135
- var h = this.element.clientHeight;
136
- var w = this.element.clientWidth;
137
- var th = this.toolBar.offsetHeight;
138
- h -= this.toolBar.offsetHeight;
139
- if (!this.ctx || !this.getLoaded()) {
140
- this.btnCw.disabled = true;
141
- this.btnCcw.disabled = true;
142
- this.canvas.style.display = "none";
143
- this.image.style.display = "block";
144
- var ratio = Math.min(w / this.imageWidth, h / this.imageHeight, 1);
145
- var imgW = this.imageWidth * ratio;
146
- var imgH = this.imageHeight * ratio;
147
- var y = th + (h - imgH) / 2;
148
- var x = (w - imgW) / 2;
149
- this.image.style.left = Math.round(x) + "px";
150
- this.image.style.top = Math.round(y) + "px";
151
- this.image.style.width = Math.round(imgW) + "px";
152
- this.image.style.height = Math.round(imgH) + "px";
153
- } else {
154
- this.btnCw.disabled = this.isAnimating_;
155
- this.btnCcw.disabled = this.isAnimating_;
156
- this.canvas.style.display = "block";
157
- this.image.style.display = "none";
158
-
159
- this.canvas.style.left = 0 + "px";
160
- this.canvas.style.top = th + "px";
161
- this.canvas.style.width = w + "px";
162
- this.canvas.width = w;
163
- this.canvas.style.height = h + "px";
164
- this.canvas.height = h;
165
-
166
- this.ctx.save();
167
- this.ctx.clearRect(0, 0, w, h);
168
- this.ctx.translate(w / 2, h / 2);
169
- this.ctx.rotate(this.rotation);
170
- // 0 -> 1, sin(0) = 0
171
- // PI / 2 -> H / W, sin(PI/2) = 1
172
-
173
- // sin(PI/2) = 1 -> limit factor is w and imgH
174
-
175
- var iw = this.imageWidth;
176
- var ih = this.imageHeight;
177
- var scale;
178
- if (iw <= w && iw <= h && ih <= h && ih <= w) {
179
- scale = 1;
180
- } else {
181
- var sinr = sawFunc(this.rotation);
182
- var cosr = sawFunc(this.rotation + PI2);
183
- var ratio1 = sinr * Math.min(w / ih, h / iw);
184
- var ratio2 = cosr * Math.min(w / iw, h / ih);
185
- var ratio = Math.min(1, ratio1 + ratio2);
186
- scale = ratio;
187
- }
188
- this.ctx.scale(scale, scale);
189
- this.ctx.translate(-iw / 2, -ih / 2);
190
- this.ctx.drawImage(this.image, 0, 0, iw, ih);
191
- this.ctx.restore();
192
- }
193
- },
194
-
195
- rotation: 0,
196
- animationDuration: 500,
197
-
198
- rotateCcw: function () {
199
- if (!this.isAnimating_) {
200
- this.startTime_ = (new Date).valueOf();
201
- this.currentAngle_ = this.rotation;
202
- this.deltaAngle_ = Math.PI / 2;
203
- this.isAnimating_ = true;
204
- this.animCounter_ = 0;
205
- this.rotate_();
206
- }
207
- },
208
-
209
- rotateCw: function () {
210
- if (!this.isAnimating_) {
211
- this.startTime_ = (new Date).valueOf();
212
- this.currentAngle_ = this.rotation;
213
- this.deltaAngle_ = -Math.PI / 2;
214
- this.isAnimating_ = true;
215
- this.animCounter_ = 0;
216
- this.rotate_();
217
- }
218
- },
219
-
220
- rotate_: function () {
221
- if (this.isAnimating_) {
222
- var t = easeInEaseOut(Math.min(1, (new Date - this.startTime_) /
223
- this.animationDuration));
224
- this.rotation = t * this.deltaAngle_ + this.currentAngle_;
225
- if (t < 1) {
226
- var self = this;
227
- window.setTimeout(function () {
228
- self.rotate_();
229
- }, 10);
230
- } else {
231
- this.isAnimating_ = false;
232
- }
233
- this.layout();
234
- }
235
- },
236
-
237
- onImageLoad: function (e) {
238
- this.imageLoaded = true;
239
- this.initCanvas();
240
- },
241
- onImageError: function (e) {
242
- this.imageLoaded = false;
243
- },
244
- onImageAbort: function (e) {
245
- this.imageLoaded = false;
246
- },
247
- onWindowLoad: function (e) {
248
- this.windowLoaded = true;
249
- this.initCanvas();
250
- },
251
-
252
- initCanvas: function () {
253
- if (!this.ctx && this.getLoaded()) {
254
- // IE recreates the element?
255
- this.canvas = this.element.getElementsByTagName("canvas")[0];
256
- this.ctx = this.canvas.getContext("2d");
257
-
258
- if (!this.ctx) {
259
- return;
260
- }
261
- this.layout();
262
- }
263
- }
264
- };
265
-
266
- </script>
267
- </head>
268
- <body>
269
-
270
- <div id="image-rotator">
271
- <div class="tool-bar">
272
- <button>Rotate Left</button><button>Rotate Right</button>
273
- </div>
274
- <canvas id="c"></canvas>
275
- <img src="" alt="">
276
- </div>
277
- <script type="text/javascript">
278
- new ImageRotator(document.getElementById("image-rotator"),
279
- "ff.jpg", 608, 380);
280
- </script>
281
-
282
- </body>
283
- </html>
284
-
@@ -1,49 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Arc Test</title>
5
- <style>
6
-
7
- body {
8
- text-align: center
9
- }
10
-
11
- </style>
12
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
13
- <script>
14
-
15
- window.onload = function() {
16
- var ctx = document.getElementById('c').getContext('2d');
17
-
18
- ctx.beginPath();
19
- ctx.arc(25, 25, 20, 0, Math.PI, false);
20
- ctx.stroke();
21
-
22
- ctx.save();
23
- ctx.scale(0.5, 0.5);
24
- ctx.beginPath();
25
- ctx.arc(75, 25, 20, 0, Math.PI * 2, false);
26
- ctx.stroke();
27
- ctx.restore();
28
-
29
- ctx.beginPath();
30
- ctx.arc(25, 75, 20, 0, Math.PI, true);
31
- ctx.stroke();
32
-
33
- ctx.beginPath();
34
- ctx.arc(75, 75, 20, 0, Math.PI * 2, true);
35
- ctx.stroke();
36
-
37
- };
38
-
39
- </script>
40
- </head>
41
- <body>
42
-
43
- <canvas id=c width=200 height=100></canvas>
44
-
45
- <p>This tests that drawing arches work in the same way in different
46
- browsers.</p>
47
-
48
- </body>
49
- </html>
@@ -1,47 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Line Width Test</title>
5
- <style>
6
-
7
- body {
8
- text-align: center
9
- }
10
-
11
- </style>
12
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
13
- <script>
14
-
15
- window.onload = function() {
16
- var ctx = document.getElementById('c').getContext('2d');
17
-
18
- ctx.strokeStyle = 'black';
19
- ctx.lineWidth = 1;
20
- for (var i = 0; i < 100; i++) {
21
- ctx.beginPath();
22
- ctx.moveTo(49 + i / 100, i);
23
- ctx.lineTo(49 + i / 100, i + 1);
24
- ctx.closePath();
25
- ctx.stroke();
26
- }
27
-
28
- for (var i = 0; i < 100; i++) {
29
- ctx.beginPath();
30
- ctx.moveTo(i, 49 + i / 100);
31
- ctx.lineTo(i + 1, 49 + i / 100);
32
- ctx.closePath();
33
- ctx.stroke();
34
- }
35
- };
36
-
37
- </script>
38
- </head>
39
- <body>
40
-
41
- <canvas id=c width=100 height=100></canvas>
42
-
43
- <p>This tests that lines work in the same way in different browsers when you are
44
- using sub pixel coordinates.</p>
45
-
46
- </body>
47
- </html>
@@ -1,37 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Overflow Test</title>
5
- <style>
6
-
7
- body {
8
- text-align: center
9
- }
10
-
11
- </style>
12
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
13
- <script>
14
-
15
- window.onload = function() {
16
- var ctx = document.getElementById('c').getContext('2d');
17
-
18
- ctx.fillStyle = 'blue';
19
- ctx.fillRect(-50, -50, 100, 100);
20
-
21
- ctx.fillStyle = 'green';
22
- ctx.fillRect(50, 50, 100, 100);
23
-
24
- ctx.strokeStyle = 'black';
25
- ctx.strokeRect(0, 0, 100, 100);
26
- };
27
-
28
- </script>
29
- </head>
30
- <body>
31
-
32
- <canvas id=c width=100 height=100></canvas>
33
-
34
- <p>This tests if content gets cropped if painting outside the canvas.</p>
35
-
36
- </body>
37
- </html>
@@ -1,74 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Quadratic Curve Test</title>
5
- <style>
6
-
7
- body {
8
- text-align: center
9
- }
10
-
11
- </style>
12
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
13
- <script>
14
-
15
- window.onload = function() {
16
- var ctx = document.getElementById('c').getContext('2d');
17
-
18
- ctx.strokeStyle = 'black';
19
- ctx.lineWidth = 1;
20
- ctx.beginPath();
21
- ctx.moveTo(50, 50);
22
- ctx.quadraticCurveTo(0, 0, 25, 75);
23
- ctx.quadraticCurveTo(50, 0, 50, 50);
24
- ctx.stroke();
25
- };
26
-
27
- </script>
28
- </head>
29
- <body>
30
-
31
- <canvas id=c width=100 height=100></canvas>
32
-
33
- <p>This tests that drawing quadratic curves work in the same way in different
34
- browsers.</p>
35
-
36
- </body>
37
- </html>
38
- <!DOCTYPE html>
39
- <html>
40
- <head>
41
- <title>Quadratic Curve Test</title>
42
- <style>
43
-
44
- body {
45
- text-align: center
46
- }
47
-
48
- </style>
49
- <!--[if IE]><script type="text/javascript" src="../excanvas.js"></script><![endif]-->
50
- <script>
51
-
52
- window.onload = function() {
53
- var ctx = document.getElementById('c').getContext('2d');
54
-
55
- ctx.strokeStyle = 'black';
56
- ctx.lineWidth = 1;
57
- ctx.beginPath();
58
- ctx.moveTo(50, 50);
59
- ctx.quadraticCurveTo(0, 0, 25, 75);
60
- ctx.quadraticCurveTo(50, 0, 50, 50);
61
- ctx.stroke();
62
- };
63
-
64
- </script>
65
- </head>
66
- <body>
67
-
68
- <canvas id=c width=100 height=100></canvas>
69
-
70
- <p>This tests that drawing quadratic curves work in the same way in different
71
- browsers.</p>
72
-
73
- </body>
74
- </html>