gem-count
Version:
Fetch a user's gem count from Rubygems
40 lines (35 loc) • 857 B
JavaScript
// Generated by CoffeeScript 1.6.3
var count, promise, request;
promise = require('when');
request = require('request');
count = function(user) {
var api, deferred, fetch, getUrl, process;
api = 'https://rubygems.org/api/v1/owners/:user/gems.json';
deferred = promise.defer();
getUrl = function(user) {
if (user == null) {
user = '';
}
return api.replace(':user', user);
};
fetch = function() {
var url;
url = getUrl(user);
return request({
uri: url
}, process);
};
process = function(error, res, body) {
var gems;
if (error || body.charAt(0) !== '[') {
return deferred.reject(error || body);
} else {
gems = JSON.parse(body);
count = gems.length || 0;
return deferred.resolve(count);
}
};
fetch();
return deferred.promise;
};
module.exports = count;