Skip to content

Commit

Permalink
Remove commented out promise code. Some may want it, but it's not to …
Browse files Browse the repository at this point in the history
…be found in this fork.
  • Loading branch information
eee-c committed Apr 6, 2010
1 parent d37f653 commit b971d37
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 67 deletions.
3 changes: 0 additions & 3 deletions changes/lib/listener.js
Expand Up @@ -64,19 +64,16 @@ var Changes = function (uri, options) {

if (!options.since) {
var getSeq = function (callback) {
// var p = new events.Promise();
var request = c.h.request("GET", c.url.pathname.replace('/_changes', ''), {'accept':'application/json'});
request.addListener('response', function(response) {
buffer = '';
response.addListener("data", function(data){buffer += data;});
response.addListener("end", function () {
options.since = JSON.parse(buffer)['update_seq'];
// p.emitSuccess();
callback();
});
});
request.close();
// return p;
};
getSeq(start);
} else {
Expand Down
102 changes: 38 additions & 64 deletions changes/lib/service.js
Expand Up @@ -7,60 +7,46 @@ var listener = require('./listener'),
http = require('http');

var loadModule = function (content, name, callback) {
//var p = new events.Promise();
var wrapper = "(function (exports, require, module, __filename, __dirname) { "
+ content
+ "\n});";
var exports = {};
self = this;
setTimeout( function () {
// try {
var compiledWrapper = process.compile(wrapper, name);
compiledWrapper.apply(exports, [exports, require, self]);
callback(exports);
//p.emitSuccess(exports);
// } catch (e) {
// p.emitError(e)
// }
}, 0)
//return p;
}
var compiledWrapper = process.compile(wrapper, name);
compiledWrapper.apply(exports, [exports, require, self]);
callback(exports);
}, 0);
};

var alldbs = function (port, hostname, pathname, callback) {
//var p = new events.Promise();
var client = http.createClient(port, hostname);
var request = client.request('GET', pathname + '_all_dbs');
request.addListener('response', function(response) {
var buffer = '';
response.addListener("data", function(data){buffer += data;});
response.addListener("end", function(){
dbs = JSON.parse(buffer);
//p.emitSuccess(dbs);
callback(dbs);
});
});
request.close();

//return p;
};

var getDesignDoc = function (baseurl, dbname, id, callback) {
//var p = new events.Promise();
var uri = url.parse(baseurl);
var client = http.createClient(uri.port, uri.hostname)
var client = http.createClient(uri.port, uri.hostname);
var request = client.request('GET', '/'+dbname+'/'+id, {'accept':'application/json'});
request.addListener('response', function(response){
var buffer = '';
response.addListener("data", function(data){buffer += data});
response.addListener("data", function(data){buffer += data;});
response.addListener("end", function(){
dbs = JSON.parse(buffer);
//p.emitSuccess(dbs);
callback(dbs);
})
})
});
});
request.close();
//return p;
}
};

var Deligation = function (baseurl) {
if (baseurl[baseurl.length - 1] != '/') {
Expand All @@ -69,7 +55,7 @@ var Deligation = function (baseurl) {
this.baseurl = baseurl;
this.modules = {};
this.changes = {};
}
};
Deligation.prototype.designDocChange = function (dbname, id) {
var d = this;
if (!this.changes[dbname]) {
Expand All @@ -78,17 +64,14 @@ Deligation.prototype.designDocChange = function (dbname, id) {
if (doc.id && doc.id.startsWith('_design')) {
d.designDocChange(dbname, doc.id);
};
})
});
}

d.cleanup(dbname, id);
// getDesignDoc(this.baseurl, dbname, id).addCallback(function(doc){
// d.handleDesignDoc(dbname, doc);
// });
getDesignDoc(this.baseurl, dbname, id, function(doc){
d.handleDesignDoc(dbname, doc);
});
}
};
Deligation.prototype.handleDesignDoc = function (dbname, doc) {
var d = this;
if (doc.changes) {
Expand All @@ -98,25 +81,21 @@ Deligation.prototype.handleDesignDoc = function (dbname, doc) {
}
d.modules[dbname+'/'+doc._id] = module;
});
// .addErrback(function() {
// sys.puts('Cannot import changes listener from '+JSON.stringify(doc._id));
// });
}
};
Deligation.prototype.cleanup = function (dbname, id) {
var d = this;
var module = d.modules[dbname+'/'+id];
if (module) {
if (module.listener) {
d.changes[dbname].removeListener("change", module.listener)
d.changes[dbname].removeListener("change", module.listener);
}
delete module
delete module;
delete d.modules[dbname+'/'+id];
}
}
};

var getDesignDocs = function (port, hostname, dbpath, callback) {
//var p = new events.Promise();
var client = http.createClient(port, hostname);
var ddocpath = dbpath+'/_all_docs?startkey=%22_design%2F%22&endkey=%22_design0%22';
var request = client.request('GET', ddocpath, {'accept':'application/json'});
Expand All @@ -126,13 +105,11 @@ var getDesignDocs = function (port, hostname, dbpath, callback) {
response.addListener("end", function(){
var resp = JSON.parse(buffer);
var docs = [];
resp.rows.forEach(function(doc) {docs.push(doc)});
//p.emitSuccess(docs);
resp.rows.forEach(function(doc) {docs.push(doc);});
callback(docs);
});
});
request.close();
//return p;
};

var inArray = function (array, obj) {
Expand All @@ -142,7 +119,7 @@ var inArray = function (array, obj) {
}
}
return false;
}
};

var start = function (couchdbUrl, deligation) {
var pathname = couchdbUrl.pathname || '/';
Expand All @@ -162,30 +139,27 @@ var start = function (couchdbUrl, deligation) {
var attachAllDbs = function (dbs) {
dbs.forEach(function(dbname) {
getDesignDocs(couchdbUrl.port, couchdbUrl.hostname, pathname+dbname, function(docs) {
// .addCallback(function(docs) {
if (docs.length != 0) {
docs.forEach(function(doc) {deligation.designDocChange(dbname, doc.id)})
}
finished.push(dbname);
if (finished.length == dbs.length) {
setInterval(function () {
alldbs(couchdbUrl.port, couchdbUrl.hostname, pathname, function(dbs) {
var newdbs = [];
dbs.forEach( function(db) {
if (!deligation.changes[db]) { newdbs.push(db) }
});
attachAllDbs(newdbs);
})
}, 60 * 1000);
}
})
})
}
if (docs.length != 0) {
docs.forEach(function(doc) {deligation.designDocChange(dbname, doc.id);});
}
finished.push(dbname);
if (finished.length == dbs.length) {
setInterval(function () {
alldbs(couchdbUrl.port, couchdbUrl.hostname, pathname, function(dbs) {
var newdbs = [];
dbs.forEach( function(db) {
if (!deligation.changes[db]) { newdbs.push(db); }
});
attachAllDbs(newdbs);
});
}, 60 * 1000);
}
});
});
};

// Deprecated promise-based call:
// alldbs(couchdbUrl.port, couchdbUrl.hostname, pathname).addCallback(attachAllDbs)
alldbs(couchdbUrl.port, couchdbUrl.hostname, pathname, attachAllDbs)
}
alldbs(couchdbUrl.port, couchdbUrl.hostname, pathname, attachAllDbs);
};

exports.start = start;
exports.Deligation = Deligation;
Expand Down

0 comments on commit b971d37

Please sign in to comment.