From b88b767b0b060fc8bf542a2a652497e91932070c Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Tue, 14 Mar 2006 11:45:19 +0000 Subject: [PATCH] Renamed DB to scholar.sqlite, since that seems to be the current fashion Added some new core functions: - Scholar.varDump(), after PHP's var_dump() - Scholar.flattenArguments(), to flatten mixed array/literal argument lists into a single array - Scholar.join() -- a version of join() that operates externally, for use on, for example, the arguments object (safer than extending Object) - Scholar.Hash, a slightly smarter associative array -- not perfect, but brings a proper length property and a few convenience methods (and allows for other additions) -- should probably be limited to places where the length property or other additional additions are needed, since its use is a little non-standard (e.g. you have to remember to do _for (i in arr.items)_ rather than just _for (i in arr)_, to use set(), etc.) --- chrome/chromeFiles/content/scholar/scholar.js | 166 +++++++++++++++++- 1 file changed, 161 insertions(+), 5 deletions(-) diff --git a/chrome/chromeFiles/content/scholar/scholar.js b/chrome/chromeFiles/content/scholar/scholar.js index d21300a1c..5b52b138a 100644 --- a/chrome/chromeFiles/content/scholar/scholar.js +++ b/chrome/chromeFiles/content/scholar/scholar.js @@ -1,7 +1,9 @@ const SCHOLAR_CONFIG = { - DB_FILE : 'scholar.sdb', - DB_VERSION : 1, - DEBUG_LOGGING : true + GUID: 'scholar@chnm', + DB_FILE: 'scholar.sqlite', + DB_VERSION: 2, + DB_REBUILD: false, // erase DB and recreate from schema + DEBUG_LOGGING: true }; /* @@ -12,9 +14,10 @@ var Scholar = { * Initialize the extension */ init: function() { - scholarDB.updateSchema(); + Scholar_DB.updateSchema(); }, + /* * Debug logging function * @@ -47,7 +50,160 @@ var Scholar = { dump('scholar(' + level + '): ' + message); } return true; - } + }, + + + /** + * PHP var_dump equivalent for JS + * + * Adapted from http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html + */ + varDump: function(arr,level) { + var dumped_text = ""; + if (!level){ + level = 0; + } + + // The padding given at the beginning of the line. + var level_padding = ""; + for (var j=0;j function(...){...} \n"; + } + else { + dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; + } + } + } + } + else { // Stings/Chars/Numbers etc. + dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; + } + return dumped_text; + }, + + + /* + * Flattens mixed arrays/values in a passed _arguments_ object and returns + * an array of values -- allows for functions to accept both arrays of + * values and/or an arbitrary number of individual values + */ + flattenArguments: function(args){ + var returns = new Array(); + + for (var i=0; i