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,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo ZipEntry.prototype.getFileEntry (Directory)</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="test12.js"></script>
13
+ </body>
14
+ </html>
@@ -0,0 +1,66 @@
1
+ var requestFileSystem = window.webkitRequestFileSystem || window.mozRequestFileSystem || window.msRequestFileSystem || window.requestFileSystem;
2
+ var URL = "lorem2.zip";
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
+ zipFs.root.getFileEntry(filesystem.root, callback, null, onerror);
37
+ }, onerror);
38
+ }
39
+
40
+ function logFile(file) {
41
+ var reader = new FileReader();
42
+ reader.onload = function(event) {
43
+ console.log(event.target.result);
44
+ console.log("--------------");
45
+ };
46
+ reader.onerror = onerror;
47
+ reader.readAsText(file);
48
+ }
49
+
50
+ function test() {
51
+ importZipToFilesystem(function() {
52
+ filesystem.root.getDirectory("aaa", null, function(directoryEntry) {
53
+ directoryEntry.getDirectory("ccc", null, function(directoryEntry) {
54
+ directoryEntry.getFile("lorem.txt", null, function(fileEntry) {
55
+ fileEntry.file(logFile, onerror);
56
+ }, onerror);
57
+ }, onerror);
58
+ }, onerror);
59
+ }, onerror);
60
+ }
61
+
62
+ zip.workerScriptsPath = "../";
63
+ requestFileSystem(TEMPORARY, 4 * 1024 * 1024 * 1024, function(fs) {
64
+ filesystem = fs;
65
+ removeRecursively(filesystem.root, test, test);
66
+ }, onerror);
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo ZipEntry.prototype.addFileEntry (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="dataview.js"></script>
11
+ <script type="text/javascript" src="test13.js"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,74 @@
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 requestFileSystem = window.webkitRequestFileSystem || window.mozRequestFileSystem || window.msRequestFileSystem || window.requestFileSystem;
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 addFileEntryAndReadFile(fileEntry, callback) {
35
+ zipFs.root.addFileEntry(fileEntry, function() {
36
+ var zipEntry = zipFs.root.getChildByName("lorem.txt");
37
+ zipEntry.getText(callback);
38
+ }, onerror);
39
+ }
40
+
41
+ function logText(text) {
42
+ console.log(text);
43
+ console.log("--------------");
44
+ }
45
+
46
+ function initFileSystem(callback) {
47
+ filesystem.root.getFile("lorem.txt", {
48
+ create : true
49
+ }, function(fileEntry) {
50
+ fileEntry.createWriter(function(writer) {
51
+ writer.onwrite = function() {
52
+ callback(fileEntry);
53
+ };
54
+ writer.onerror = onerror;
55
+ writer.write(new Blob([ TEXT_CONTENT ], {
56
+ type : "text/plain"
57
+ }));
58
+ }, onerror);
59
+ }, onerror);
60
+ }
61
+
62
+ function test() {
63
+ initFileSystem(function(fileEntry) {
64
+ addFileEntryAndReadFile(fileEntry, function(text) {
65
+ logText(text);
66
+ }, onerror);
67
+ });
68
+ }
69
+
70
+ zip.workerScriptsPath = "../";
71
+ requestFileSystem(TEMPORARY, 4 * 1024 * 1024 * 1024, function(fs) {
72
+ filesystem = fs;
73
+ removeRecursively(filesystem.root, test, onerror);
74
+ }, onerror);
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo ZipEntry.prototype.addFileEntry (Directory)</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="dataview.js"></script>
11
+ <script type="text/javascript" src="test14.js"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,80 @@
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 requestFileSystem = window.webkitRequestFileSystem || window.mozRequestFileSystem || window.msRequestFileSystem || window.requestFileSystem;
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 addDirectoryAndReadFile(callback) {
35
+ zipFs.root.addFileEntry(filesystem.root, function() {
36
+ var zipEntry = zipFs.root.getChildByName("aaa").getChildByName("ccc").getChildByName("lorem.txt");
37
+ zipEntry.getText(callback);
38
+ }, onerror);
39
+ }
40
+
41
+ function logText(text) {
42
+ console.log(text);
43
+ console.log("--------------");
44
+ }
45
+
46
+ function initFileSystem(callback) {
47
+ filesystem.root.getDirectory("aaa", {
48
+ create : true
49
+ }, function(directoryEntry) {
50
+ directoryEntry.getDirectory("ccc", {
51
+ create : true
52
+ }, function(directoryEntry) {
53
+ directoryEntry.getFile("lorem.txt", {
54
+ create : true
55
+ }, function(fileEntry) {
56
+ fileEntry.createWriter(function(writer) {
57
+ writer.onwrite = callback;
58
+ writer.onerror = onerror;
59
+ writer.write(new Blob([ TEXT_CONTENT ], {
60
+ type : "text/plain"
61
+ }));
62
+ }, onerror);
63
+ }, onerror);
64
+ }, onerror);
65
+ }, onerror);
66
+ }
67
+
68
+ function test() {
69
+ initFileSystem(function() {
70
+ addDirectoryAndReadFile(function(text) {
71
+ logText(text);
72
+ }, onerror);
73
+ });
74
+ }
75
+
76
+ zip.workerScriptsPath = "../";
77
+ requestFileSystem(TEMPORARY, 4 * 1024 * 1024 * 1024, function(fs) {
78
+ filesystem = fs;
79
+ removeRecursively(filesystem.root, test, onerror);
80
+ }, onerror);
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo parallel reads</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="dataview.js"></script>
10
+ <script type="text/javascript" src="test15.js"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,60 @@
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
+
3
+ function onerror(message) {
4
+ console.error(message);
5
+ }
6
+
7
+ function zipBlobs(blobs, callback) {
8
+ zip.createWriter(new zip.BlobWriter("application/zip"), function(zipWriter) {
9
+ var index = 0;
10
+
11
+ function next() {
12
+ if (index < blobs.length)
13
+ zipWriter.add(blobs[index].name, new zip.BlobReader(blobs[index].blob), function() {
14
+ index++;
15
+ next();
16
+ });
17
+ else
18
+ zipWriter.close(callback);
19
+ }
20
+
21
+ next();
22
+ }, onerror);
23
+ }
24
+
25
+ function unzipBlob(blob) {
26
+ zip.createReader(new zip.BlobReader(blob), function(zipReader) {
27
+ zipReader.getEntries(function(entries) {
28
+ var i;
29
+ for (i = 0; i < entries.length; i++)
30
+ entries[i].getData(new zip.TextWriter(), function(text) {
31
+ logText(text);
32
+ });
33
+ });
34
+ }, onerror);
35
+ }
36
+
37
+ function getBlob() {
38
+ return new Blob([ TEXT_CONTENT ], {
39
+ type : "text/plain"
40
+ });
41
+ }
42
+
43
+ function logText(text) {
44
+ console.log(text);
45
+ console.log("--------------");
46
+ }
47
+
48
+ zip.workerScriptsPath = "../";
49
+
50
+ var blobs = [ {
51
+ name : "lorem1.txt",
52
+ blob : getBlob()
53
+ }, {
54
+ name : "lorem2.txt",
55
+ blob : getBlob()
56
+ } ];
57
+
58
+ zipBlobs(blobs, function(zippedBlob) {
59
+ unzipBlob(zippedBlob);
60
+ });
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo without web workers</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="../deflate.js"></script>
10
+ <script type="text/javascript" src="../inflate.js"></script>
11
+ <script type="text/javascript" src="dataview.js"></script>
12
+ <script type="text/javascript" src="test16.js"></script>
13
+ </body>
14
+ </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("text/plain"), 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.useWebWorkers = false;
38
+ blob = new Blob([ TEXT_CONTENT ], {
39
+ type : "text/plain"
40
+ });
41
+ logBlobText(blob);
42
+ zipBlob(blob, function(zippedBlob) {
43
+ unzipBlob(zippedBlob, function(unzippedBlob) {
44
+ logBlobText(unzippedBlob);
45
+ });
46
+ });
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <title>Demo base 64 (compatible with IE, Firefox, Chrome, Safari)</title>
6
+ </head>
7
+ <body>
8
+ <script type="text/javascript" src="../zip.js"></script>
9
+ <script type="text/javascript" src="../deflate.js"></script>
10
+ <script type="text/javascript" src="../inflate.js"></script>
11
+ <script type="text/javascript" src="arraybuffer.js"></script>
12
+ <script type="text/javascript" src="base64.js"></script>
13
+ <script type="text/javascript" src="test17.js"></script>
14
+ </body>
15
+ </html>
@@ -0,0 +1,41 @@
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
+
4
+ var dataURI = "data:text/plain;base64," + btoa(TEXT_CONTENT);
5
+
6
+ function onerror(message) {
7
+ console.error(message);
8
+ }
9
+
10
+ function zipDataURI(dataURI, callback) {
11
+ zip.createWriter(new zip.Data64URIWriter("application/zip"), function(zipWriter) {
12
+ zipWriter.add(FILENAME, new zip.Data64URIReader(dataURI), function() {
13
+ zipWriter.close(callback);
14
+ });
15
+ }, onerror);
16
+ }
17
+
18
+ function unzipDataURI(dataURI, callback) {
19
+ zip.createReader(new zip.Data64URIReader(dataURI), function(zipReader) {
20
+ zipReader.getEntries(function(entries) {
21
+ entries[0].getData(new zip.Data64URIWriter("text/plain"), function(data) {
22
+ zipReader.close();
23
+ callback(data);
24
+ });
25
+ });
26
+ }, onerror);
27
+ }
28
+
29
+ function logDataURI(dataURI) {
30
+ console.log(dataURI);
31
+ console.log("--------------");
32
+ }
33
+
34
+ zip.useWebWorkers = false;
35
+ logDataURI(dataURI);
36
+ zipDataURI(dataURI, function(zippedData64) {
37
+ logDataURI(zippedData64);
38
+ unzipDataURI(zippedData64, function(unzippedDataURI) {
39
+ logDataURI(unzippedDataURI);
40
+ });
41
+ });