Skip to content

Instantly share code, notes, and snippets.

@J-O-N
Created June 14, 2012 21:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save J-O-N/2933014 to your computer and use it in GitHub Desktop.
Save J-O-N/2933014 to your computer and use it in GitHub Desktop.
A helper object to $.couch
var jcouch = {
new: function(db_name, options) {
return {
config: $.extend(true, {
async: false
},
typeof options === 'object' ? options : {}
),
db: $.couch.db(decodeURIComponent(db_name)),
forall: function(callback) {
var THIS = this;
THIS.get_all(function(data) {
$.each(data, function() {
THIS.get_doc(this.id, function(doc) {
callback(doc);
});
});
});
},
foreach: function(view, callback) {
var THIS = this;
THIS.get_view(view, function(data) {
$.each(data, function() {
THIS.get_doc(this.id, function(doc) {
callback(doc);
});
});
});
},
get_all: function(callback) {
var THIS = this;
THIS.db.allDocs({
async: THIS.config.async,
success: function(data) {
if($.isFunction(callback)) {
callback(data.rows);
}
}
});
},
get_view: function(view, callback) {
var THIS = this;
THIS.db.view(view, {
async: THIS.config.async,
success: function(data) {
if($.isFunction(callback)) {
callback(data.rows);
}
}
});
},
get_doc: function(id, callback) {
var THIS = this;
THIS.db.openDoc(id, null, {
async: THIS.config.async,
success: function(data) {
if($.isFunction(callback)) {
callback(data);
}
}
});
},
save_doc: function(doc, callback) {
var THIS = this;
THIS.db.saveDoc(doc, {
async: THIS.config.async,
success: function(data) {
if($.isFunction(callback)) {
callback(data);
}
}
});
},
delete_doc: function(doc, callback) {
var THIS = this;
THIS.db.removeDoc(doc, {
async: THIS.config.async,
success: function(data) {
if($.isFunction(callback)) {
callback(data);
}
}
});
}
};
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment