module.exports = function(set, app) { var keys = Object.keys(set.generators); for(var i = 0; i < keys.length; ++i) { var bindObj = {key: keys[i]} app.get('/i/' + keys[i], (function (req, res) { var key = this.key; var gen = set.generators[key]; var agent = req.headers['user-agent']; var results = { genders: gen.genders, formats: {} }; var formatKeys = Object.keys(gen.formats); for(var j = 0; j < formatKeys.length; ++j) { var format = gen.formats[formatKeys[j]]; results.formats[formatKeys[j]] = format.name; } if(agent.indexOf('curl/') != -1 || req.query.hasOwnProperty('t')) { var str = ''; for(var i = 0; i < results.genders.length; ++i) { if(i > 0) { str += '\n'; } str += 'Gender: ' + results.genders[i]; } var lastFormat = ""; for(var j = 0; j < formatKeys.length; ++j) { var formatKey = formatKeys[j].split('.')[0]; if(formatKey != lastFormat) { str += '\nFormat: ' + formatKey + ' ' + results.formats[formatKeys[j]]; } lastFormat = formatKey; } res.header("Content-Type", "text/plain; charset=utf-8"); res.end(str); } else { res.header("Content-Type", "application/json; charset=utf-8"); res.end(JSON.stringify(results)); } }).bind(bindObj)); } }