Skip to content

Instantly share code, notes, and snippets.

@atduskgreg
Created January 7, 2009 00:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save atduskgreg/44089 to your computer and use it in GitHub Desktop.
Save atduskgreg/44089 to your computer and use it in GitHub Desktop.
patched version of jquery tinydb plugin that does appends
/* jquery.tinydb - jQuery interface to TinyDB (http://tinydb.org/)
* Copyright (c) 2008 Chris Moyer (chris@inarow.net)
*
* usage:
* jQuery.tinydb.read(tinydb_id, callback);
* callback is called with the data from TinyDB
*
* jQuery.tinydb.write({key: val, key2: val2}, callback);
* write data, callback is called with tinydb_id string
*
* MIT (http://www.opensource.org/licenses/mit-license.php) licensed.
*/
jQuery.tinydb = {
callbacks: [],
generateCallbackString: function (callback) {
var callback_num = this.callbacks.length
var callback_string = 'jQuery.tinydb.callbacks[' + callback_num + ']';
this.callbacks[callback_num] = callback;
return callback_string;
},
read: function (tinydb_id, callback, opts) {
if(opts && opts.all)
var callback_string = this.generateCallbackString(function () { callback(TINYDB.data);});
else
var callback_string = this.generateCallbackString(function () { callback(TINYDB.data[0]);});
jQuery.getScript('http://tinydb.org/' + escape(tinydb_id) +
'?_f=js&_c=' + escape(callback_string) + ((opts && opts.all) ? '&_i=true' : ''));
},
write: function (data, callback, updateDB) {
var callback_string =
this.generateCallbackString(function () {
var url = TINYDB.data.tinydb_url;
var parts = url.split(/\//);
callback(parts[parts.length-1]);
});
var dataString = '';
for (i in data) {
dataString += '&' + escape(i) + '=' + escape(data[i]);
}
if(updateDB)
var urlStem = 'http://tinydb.org/_write?_i='+updateDB + '&';
else
var urlStem = 'http://tinydb.org/_write?';
jQuery.getScript(urlStem + '_f=js&_c=' + escape(callback_string) + dataString);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment