monocle-rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/lib/monocle/rails/version.rb +1 -1
  2. data/vendor/assets/.DS_Store +0 -0
  3. data/vendor/assets/javascripts/deflate.js +2088 -0
  4. data/vendor/assets/javascripts/inflate.js +2163 -0
  5. data/vendor/assets/javascripts/mime-types.js +1001 -0
  6. data/vendor/assets/javascripts/tests/arraybuffer.js +760 -0
  7. data/vendor/assets/javascripts/tests/base64.js +58 -0
  8. data/vendor/assets/javascripts/tests/dataview.js +212 -0
  9. data/vendor/assets/javascripts/tests/lorem.txt +1 -0
  10. data/vendor/assets/javascripts/tests/lorem.zip +0 -0
  11. data/vendor/assets/javascripts/tests/lorem2.zip +0 -0
  12. data/vendor/assets/javascripts/tests/lorem_store.zip +0 -0
  13. data/vendor/assets/javascripts/tests/test1.html +13 -0
  14. data/vendor/assets/javascripts/tests/test1.js +46 -0
  15. data/vendor/assets/javascripts/tests/test10.html +14 -0
  16. data/vendor/assets/javascripts/tests/test10.js +34 -0
  17. data/vendor/assets/javascripts/tests/test11.html +14 -0
  18. data/vendor/assets/javascripts/tests/test11.js +67 -0
  19. data/vendor/assets/javascripts/tests/test12.html +14 -0
  20. data/vendor/assets/javascripts/tests/test12.js +66 -0
  21. data/vendor/assets/javascripts/tests/test13.html +13 -0
  22. data/vendor/assets/javascripts/tests/test13.js +74 -0
  23. data/vendor/assets/javascripts/tests/test14.html +13 -0
  24. data/vendor/assets/javascripts/tests/test14.js +80 -0
  25. data/vendor/assets/javascripts/tests/test15.html +12 -0
  26. data/vendor/assets/javascripts/tests/test15.js +60 -0
  27. data/vendor/assets/javascripts/tests/test16.html +14 -0
  28. data/vendor/assets/javascripts/tests/test16.js +46 -0
  29. data/vendor/assets/javascripts/tests/test17.html +15 -0
  30. data/vendor/assets/javascripts/tests/test17.js +41 -0
  31. data/vendor/assets/javascripts/tests/test18.html +16 -0
  32. data/vendor/assets/javascripts/tests/test18.js +46 -0
  33. data/vendor/assets/javascripts/tests/test2.html +14 -0
  34. data/vendor/assets/javascripts/tests/test2.js +49 -0
  35. data/vendor/assets/javascripts/tests/test3.html +14 -0
  36. data/vendor/assets/javascripts/tests/test3.js +40 -0
  37. data/vendor/assets/javascripts/tests/test4.html +12 -0
  38. data/vendor/assets/javascripts/tests/test4.js +40 -0
  39. data/vendor/assets/javascripts/tests/test5.html +13 -0
  40. data/vendor/assets/javascripts/tests/test5.js +33 -0
  41. data/vendor/assets/javascripts/tests/test6.html +13 -0
  42. data/vendor/assets/javascripts/tests/test6.js +33 -0
  43. data/vendor/assets/javascripts/tests/test7.html +14 -0
  44. data/vendor/assets/javascripts/tests/test7.js +18 -0
  45. data/vendor/assets/javascripts/tests/test8.html +14 -0
  46. data/vendor/assets/javascripts/tests/test8.js +31 -0
  47. data/vendor/assets/javascripts/tests/test9.html +14 -0
  48. data/vendor/assets/javascripts/tests/test9.js +34 -0
  49. data/vendor/assets/javascripts/tests/util.js +16 -0
  50. data/vendor/assets/javascripts/zip-ext.js +241 -0
  51. data/vendor/assets/javascripts/zip-fs.js +538 -0
  52. data/vendor/assets/javascripts/zip.js +801 -0
  53. metadata +51 -1
@@ -0,0 +1,58 @@
1
+ /// Code can be found at: https://gist.github.com/1284012
2
+
3
+ (function() {
4
+
5
+ var a64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', a256 = {
6
+ indexOf : function(c) {
7
+ return c.charCodeAt(0);
8
+ },
9
+ charAt : String.fromCharCode
10
+ };
11
+
12
+ function code(s, discard, alpha, beta, w1, w2) {
13
+ s = String(s);
14
+ var b = 0, x = '', i, c, bs = 1, sb = 1, length = s.length, tmp;
15
+ for (i = 0; i < length || (!discard && sb > 1); i += 1) {
16
+ b *= w1;
17
+ bs *= w1;
18
+ if (i < length) {
19
+ c = alpha.indexOf(s.charAt(i));
20
+ if (c <= -1 || c >= w1) {
21
+ throw new RangeError();
22
+ }
23
+ sb *= w1;
24
+ b += c;
25
+ }
26
+ while (bs >= w2) {
27
+ bs /= w2;
28
+ if (sb > 1) {
29
+ tmp = b;
30
+ b %= bs;
31
+ x += beta.charAt((tmp - b) / bs);
32
+ sb /= w2;
33
+ }
34
+ }
35
+ }
36
+ return x;
37
+ }
38
+
39
+ if (!("btoa" in window))
40
+ window.btoa = function(s) {
41
+ s = code(s, false, a256, a64, 256, 64);
42
+ return s + '===='.slice((s.length % 4) || 4);
43
+ };
44
+
45
+ if (!("atob" in window))
46
+ window.atob = function(s) {
47
+ var i;
48
+ s = String(s).split('=');
49
+ for (i = s.length - 1; i >= 0; i -= 1) {
50
+ if (s[i].length % 4 === 1) {
51
+ throw new RangeError();
52
+ }
53
+ s[i] = code(s[i], true, a64, a256, 64, 256);
54
+ }
55
+ return s.join('');
56
+ };
57
+
58
+ })();
@@ -0,0 +1,212 @@
1
+
2
+ /*
3
+ * DataView.js:
4
+ * An implementation of the DataView class on top of typed arrays.
5
+ * Useful for Firefox 4 which implements TypedArrays but not DataView.
6
+ *
7
+ * Copyright 2011, David Flanagan
8
+ *
9
+ * All rights reserved.
10
+ *
11
+ * Redistribution and use in source and binary forms, with or without modification,
12
+ * are permitted provided that the following conditions are met:
13
+ *
14
+ * Redistributions of source code must retain the above copyright notice,
15
+ * this list of conditions and the following disclaimer.
16
+ *
17
+ * Redistributions in binary form must reproduce the above copyright notice,
18
+ * this list of conditions and the following disclaimer in the documentation.
19
+ *
20
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
26
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ */
31
+ "use strict";
32
+
33
+ (function(global) {
34
+ // If DataView already exists, do nothing
35
+ if (global.DataView) return;
36
+
37
+ // If ArrayBuffer is not supported, fail with an error
38
+ if (!global.ArrayBuffer) fail("ArrayBuffer not supported");
39
+
40
+ // If ES5 is not supported, fail
41
+ if (!Object.defineProperties) fail("This module requires ECMAScript 5");
42
+
43
+ // Figure if the platform is natively little-endian.
44
+ // If the integer 0x00000001 is arranged in memory as 01 00 00 00 then
45
+ // we're on a little endian platform. On a big-endian platform we'd get
46
+ // get bytes 00 00 00 01 instead.
47
+ var nativele = new Int8Array(new Int32Array([1]).buffer)[0] === 1;
48
+
49
+ // A temporary array for copying or reversing bytes into.
50
+ // Since js is single-threaded, we only need this one static copy
51
+ var temp = new Uint8Array(8);
52
+
53
+ // The DataView() constructor
54
+ global.DataView = function DataView(buffer, offset, length) {
55
+ if (!(buffer instanceof ArrayBuffer)) fail("Bad ArrayBuffer");
56
+
57
+ // Default values for omitted arguments
58
+ offset = offset || 0;
59
+ length = length || (buffer.byteLength - offset);
60
+
61
+ if (offset < 0 || length < 0 || offset + length > buffer.byteLength) fail("Illegal offset and/or length");
62
+
63
+ // Define the 3 read-only, non-enumerable ArrayBufferView properties
64
+ Object.defineProperties(this, {
65
+ buffer: {
66
+ value: buffer,
67
+ enumerable: false,
68
+ writable: false,
69
+ configurable: false
70
+ },
71
+ byteOffset: {
72
+ value: offset,
73
+ enumerable: false,
74
+ writable: false,
75
+ configurable: false
76
+ },
77
+ byteLength: {
78
+ value: length,
79
+ enumerable: false,
80
+ writable: false,
81
+ configurable: false
82
+ },
83
+ _bytes: {
84
+ value: new Uint8Array(buffer, offset, length),
85
+ enumerable: false,
86
+ writable: false,
87
+ configurable: false
88
+ }
89
+ });
90
+ }
91
+
92
+ // The DataView prototype object
93
+ global.DataView.prototype = {
94
+ constructor: DataView,
95
+
96
+ getInt8: function getInt8(offset) {
97
+ return get(this, Int8Array, 1, offset);
98
+ },
99
+ getUint8: function getUint8(offset) {
100
+ return get(this, Uint8Array, 1, offset);
101
+ },
102
+ getInt16: function getInt16(offset, le) {
103
+ return get(this, Int16Array, 2, offset, le);
104
+ },
105
+ getUint16: function getUint16(offset, le) {
106
+ return get(this, Uint16Array, 2, offset, le);
107
+ },
108
+ getInt32: function getInt32(offset, le) {
109
+ return get(this, Int32Array, 4, offset, le);
110
+ },
111
+ getUint32: function getUint32(offset, le) {
112
+ return get(this, Uint32Array, 4, offset, le);
113
+ },
114
+ getFloat32: function getFloat32(offset, le) {
115
+ return get(this, Float32Array, 4, offset, le);
116
+ },
117
+ getFloat64: function getFloat32(offset, le) {
118
+ return get(this, Float64Array, 8, offset, le);
119
+ },
120
+
121
+
122
+ setInt8: function setInt8(offset, value) {
123
+ set(this, Int8Array, 1, offset, value);
124
+ },
125
+ setUint8: function setUint8(offset, value) {
126
+ set(this, Uint8Array, 1, offset, value);
127
+ },
128
+ setInt16: function setInt16(offset, value, le) {
129
+ set(this, Int16Array, 2, offset, value, le);
130
+ },
131
+ setUint16: function setUint16(offset, value, le) {
132
+ set(this, Uint16Array, 2, offset, value, le);
133
+ },
134
+ setInt32: function setInt32(offset, value, le) {
135
+ set(this, Int32Array, 4, offset, value, le);
136
+ },
137
+ setUint32: function setUint32(offset, value, le) {
138
+ set(this, Uint32Array, 4, offset, value, le);
139
+ },
140
+ setFloat32: function setFloat32(offset, value, le) {
141
+ set(this, Float32Array, 4, offset, value, le);
142
+ },
143
+ setFloat64: function setFloat64(offset, value, le) {
144
+ set(this, Float64Array, 8, offset, value, le);
145
+ }
146
+ };
147
+
148
+ // The get() utility function used by the get methods
149
+
150
+
151
+ function get(view, type, size, offset, le) {
152
+ if (offset === undefined) fail("Missing required offset argument");
153
+
154
+ if (offset < 0 || offset + size > view.byteLength) fail("Invalid index: " + offset);
155
+
156
+ if (size === 1 || !! le === nativele) {
157
+ // This is the easy case: the desired endianness
158
+ // matches the native endianness.
159
+ // Typed arrays require proper alignment. DataView does not.
160
+ if ((view.byteOffset + offset) % size === 0) return (new type(view.buffer, view.byteOffset + offset, 1))[0];
161
+ else {
162
+ // Copy bytes into the temp array, to fix alignment
163
+ for (var i = 0; i < size; i++)
164
+ temp[i] = view._bytes[offset + i];
165
+ // Now wrap that buffer with an array of the desired type
166
+ return (new type(temp.buffer))[0];
167
+ }
168
+ } else {
169
+ // If the native endianness doesn't match the desired, then
170
+ // we have to reverse the bytes
171
+ for (var i = 0; i < size; i++)
172
+ temp[size - i - 1] = view._bytes[offset + i];
173
+ return (new type(temp.buffer))[0];
174
+ }
175
+ }
176
+
177
+ // The set() utility function used by the set methods
178
+
179
+
180
+ function set(view, type, size, offset, value, le) {
181
+ if (offset === undefined) fail("Missing required offset argument");
182
+ if (value === undefined) fail("Missing required value argument");
183
+
184
+ if (offset < 0 || offset + size > view.byteLength) fail("Invalid index: " + offset);
185
+
186
+ if (size === 1 || !! le === nativele) {
187
+ // This is the easy case: the desired endianness
188
+ // matches the native endianness.
189
+ if ((view.byteOffset + offset) % size === 0) {
190
+ (new type(view.buffer, view.byteOffset + offset, 1))[0] = value;
191
+ } else {
192
+ (new type(temp.buffer))[0] = value;
193
+ // Now copy the bytes into the view's buffer
194
+ for (var i = 0; i < size; i++)
195
+ view._bytes[i + offset] = temp[i];
196
+ }
197
+ } else {
198
+ // If the native endianness doesn't match the desired, then
199
+ // we have to reverse the bytes
200
+ // Store the value into our temporary buffer
201
+ (new type(temp.buffer))[0] = value;
202
+
203
+ // Now copy the bytes, in reverse order, into the view's buffer
204
+ for (var i = 0; i < size; i++)
205
+ view._bytes[offset + i] = temp[size - 1 - i];
206
+ }
207
+ }
208
+
209
+ function fail(msg) {
210
+ throw new Error(msg);
211
+ }
212
+ }(this));
@@ -0,0 +1 @@
1
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo Blob</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="../mime-types.js"></script>
10
+ <script type="text/javascript" src="dataview.js"></script>
11
+ <script type="text/javascript" src="test1.js"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,46 @@
1
+ var TEXT_CONTENT = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.";
2
+ var FILENAME = "lorem.txt";
3
+ var blob;
4
+
5
+ function onerror(message) {
6
+ console.error(message);
7
+ }
8
+
9
+ function zipBlob(blob, callback) {
10
+ zip.createWriter(new zip.BlobWriter("application/zip"), function(zipWriter) {
11
+ zipWriter.add(FILENAME, new zip.BlobReader(blob), function() {
12
+ zipWriter.close(callback);
13
+ });
14
+ }, onerror);
15
+ }
16
+
17
+ function unzipBlob(blob, callback) {
18
+ zip.createReader(new zip.BlobReader(blob), function(zipReader) {
19
+ zipReader.getEntries(function(entries) {
20
+ entries[0].getData(new zip.BlobWriter(zip.getMimeType(entries[0].filename)), function(data) {
21
+ zipReader.close();
22
+ callback(data);
23
+ });
24
+ });
25
+ }, onerror);
26
+ }
27
+
28
+ function logBlobText(blob) {
29
+ var reader = new FileReader();
30
+ reader.onload = function(e) {
31
+ console.log(e.target.result);
32
+ console.log("--------------");
33
+ };
34
+ reader.readAsText(blob);
35
+ }
36
+
37
+ zip.workerScriptsPath = "../";
38
+ blob = new Blob([ TEXT_CONTENT ], {
39
+ type : zip.getMimeType(FILENAME)
40
+ });
41
+ logBlobText(blob);
42
+ zipBlob(blob, function(zippedBlob) {
43
+ unzipBlob(zippedBlob, function(unzippedBlob) {
44
+ logBlobText(unzippedBlob);
45
+ });
46
+ });
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo STORE unzip</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="../zip-fs.js"></script>
10
+ <script type="text/javascript" src="../zip-ext.js"></script>
11
+ <script type="text/javascript" src="dataview.js"></script>
12
+ <script type="text/javascript" src="test10.js"></script>
13
+ </body>
14
+ </html>
@@ -0,0 +1,34 @@
1
+ var URL = "lorem_store.zip";
2
+
3
+ var zipFs = new zip.fs.FS();
4
+
5
+ function onerror(message) {
6
+ console.error(message);
7
+ }
8
+
9
+ function zipImportedZip(callback) {
10
+ var directory = zipFs.root.addDirectory("import");
11
+ directory.importHttpContent(URL, false, function() {
12
+ zipFs.exportBlob(callback);
13
+ }, onerror);
14
+ }
15
+
16
+ function unzipBlob(blob, callback) {
17
+ zipFs.importBlob(blob, function() {
18
+ var directory = zipFs.root.getChildByName("import");
19
+ var firstEntry = directory.children[0];
20
+ firstEntry.getText(callback);
21
+ }, onerror);
22
+ }
23
+
24
+ function logText(text) {
25
+ console.log(text);
26
+ console.log("--------------");
27
+ }
28
+
29
+ zip.workerScriptsPath = "../";
30
+ zipImportedZip(function(zippedBlob) {
31
+ unzipBlob(zippedBlob, function(unzippedText) {
32
+ logText(unzippedText);
33
+ });
34
+ });
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo ZipEntry.prototype.getFileEntry (File)</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="../zip-fs.js"></script>
10
+ <script type="text/javascript" src="../zip-ext.js"></script>
11
+ <script type="text/javascript" src="dataview.js"></script>
12
+ <script type="text/javascript" src="test11.js"></script>
13
+ </body>
14
+ </html>
@@ -0,0 +1,67 @@
1
+ var requestFileSystem = window.webkitRequestFileSystem || window.mozRequestFileSystem || window.msRequestFileSystem || window.requestFileSystem;
2
+ var URL = "lorem.zip", FILENAME = "lorem.txt";
3
+ var filesystem, zipFs = new zip.fs.FS();
4
+
5
+ function onerror(message) {
6
+ console.error(message);
7
+ }
8
+
9
+ function removeRecursively(entry, onend, onerror) {
10
+ var rootReader = entry.createReader();
11
+ rootReader.readEntries(function(entries) {
12
+ var i = 0;
13
+
14
+ function next() {
15
+ i++;
16
+ removeNextEntry();
17
+ }
18
+
19
+ function removeNextEntry() {
20
+ var entry = entries[i];
21
+ if (entry) {
22
+ if (entry.isDirectory)
23
+ removeRecursively(entry, next, onerror);
24
+ if (entry.isFile)
25
+ entry.remove(next, onerror);
26
+ } else
27
+ onend();
28
+ }
29
+
30
+ removeNextEntry();
31
+ }, onerror);
32
+ }
33
+
34
+ function importZipToFilesystem(callback) {
35
+ zipFs.importHttpContent(URL, false, function() {
36
+ filesystem.root.getFile(FILENAME, {
37
+ create : true
38
+ }, function(fileEntry) {
39
+ var zippedFile = zipFs.root.getChildByName(FILENAME);
40
+ zippedFile.getFileEntry(fileEntry, callback, null, onerror);
41
+ }, onerror);
42
+ }, onerror);
43
+ }
44
+
45
+ function logFile(file) {
46
+ var reader = new FileReader();
47
+ reader.onload = function(event) {
48
+ console.log(event.target.result);
49
+ console.log("--------------");
50
+ };
51
+ reader.onerror = onerror;
52
+ reader.readAsText(file);
53
+ }
54
+
55
+ function test() {
56
+ importZipToFilesystem(function() {
57
+ filesystem.root.getFile(FILENAME, null, function(fileEntry) {
58
+ fileEntry.file(logFile, onerror);
59
+ }, onerror);
60
+ }, onerror);
61
+ }
62
+
63
+ zip.workerScriptsPath = "../";
64
+ requestFileSystem(TEMPORARY, 4 * 1024 * 1024 * 1024, function(fs) {
65
+ filesystem = fs;
66
+ removeRecursively(filesystem.root, test, onerror);
67
+ }, onerror);