Skip to content

Instantly share code, notes, and snippets.

@k0sukey
Created August 28, 2014 02:59
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 k0sukey/04e4522bfe369509c53d to your computer and use it in GitHub Desktop.
Save k0sukey/04e4522bfe369509c53d to your computer and use it in GitHub Desktop.
bulksave method for Alloy collection
exports.definition = {
config: {
'columns': {
'bar': 'text'
},
'adapter': {
'type': 'sql',
'collection_name': 'foo'
}
},
extendModel : function(Model) {
_.extend(Model.prototype, {
});
return Model;
},
extendCollection : function(Collection) {
_.extend(Collection.prototype, {
bulksave: function(values) {
values = values || [];
var db, sql, c = [], q = [], len = values.length;
for (var k in this.config.columns) {
c.push(k);
q.push('?');
}
sql = 'REPLACE INTO ' + this.config.adapter.collection_name +
' (' + c.join(',') + ') VALUES (' + q.join(',') + ')';
db = Ti.Database.open(this.config.adapter.db_name || ALLOY_DB_DEFAULT);
db.execute('BEGIN TRANSACTION');
for (var i = 0; i < len; i++) {
db.execute(sql, values[i]);
}
db.execute('COMMIT');
db.close();
this.trigger('bulksave');
}
});
return Collection;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment