Mercurial > web-gnusto
changeset 27:174a19e03273
z5 js files are now encoded using base64, which makes them much smaller.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 12 May 2008 00:45:00 -0700 |
parents | 9d9d8c76d52d |
children | 44dcac60ed30 |
files | base64.js gnusto.html tests/test_gnusto_engine.js z5_to_js_array.py |
diffstat | 4 files changed, 34 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base64.js Mon May 12 00:45:00 2008 -0700 @@ -0,0 +1,27 @@ +/* Taken from: + * + * http://ecmanaut.blogspot.com/2007/11/javascript-base64-singleton.html + * + * With minor modifications to decode a b64 string to a byte array instead + * of a string. */ + +var base64_tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + +function decode_base64(data) { + var out = [], c1, c2, c3, e1, e2, e3, e4; + for (var i = 0; i < data.length; ) { + e1 = base64_tab.indexOf(data.charAt(i++)); + e2 = base64_tab.indexOf(data.charAt(i++)); + e3 = base64_tab.indexOf(data.charAt(i++)); + e4 = base64_tab.indexOf(data.charAt(i++)); + c1 = (e1 << 2) + (e2 >> 4); + c2 = ((e2 & 15) << 4) + (e3 >> 2); + c3 = ((e3 & 3) << 6) + e4; + out.push(c1); + if (e3 != 64) + out.push(c2); + if (e4 != 64) + out.push(c3); + } + return out; +}
--- a/gnusto.html Mon May 12 00:01:59 2008 -0700 +++ b/gnusto.html Mon May 12 00:45:00 2008 -0700 @@ -11,6 +11,7 @@ <div id="content"></div> </body> <script type="text/javascript" src="jquery.js"></script> +<script type="text/javascript" src="base64.js"></script> <script type="text/javascript" src="troll.js"></script> <script type="text/javascript" src="gnusto-engine.js"></script> <script type="text/javascript" src="engine-runner.js"></script>
--- a/tests/test_gnusto_engine.js Mon May 12 00:01:59 2008 -0700 +++ b/tests/test_gnusto_engine.js Mon May 12 00:45:00 2008 -0700 @@ -1,4 +1,4 @@ -load("troll.js", "gnusto-engine.js"); +load("base64.js", "troll.js", "gnusto-engine.js"); var gInputTimes = 0;
--- a/z5_to_js_array.py Mon May 12 00:01:59 2008 -0700 +++ b/z5_to_js_array.py Mon May 12 00:45:00 2008 -0700 @@ -1,11 +1,14 @@ import os import sys +import base64 if __name__ == "__main__": if len(sys.argv) != 2: print "usage: %s <z5-file>" % sys.argv[0] sys.exit(-1) contents = open(sys.argv[1], "rb").read() - byte_contents = [str(ord(i)) for i in contents] filename_var = os.path.basename(sys.argv[1]).replace(".", "_") - print "%s = [%s];" % (filename_var, ",".join(byte_contents)) + print "var %s = decode_base64('%s');" % ( + filename_var, + base64.b64encode(contents) + )