Skip to content

Commit 49544fe

Browse files
Jeff Dickeyjdx
authored andcommitted
Merge pull request #1 from heroku/jshint-refactor
refactored to make jshint happy
1 parent b06218f commit 49544fe

File tree

5 files changed

+52
-66
lines changed

5 files changed

+52
-66
lines changed

packages/heroku-redis-jsplugin/.jshintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"maxdepth": 5,
1414
"maxparams": 5,
1515
"maxstatements": 25,
16+
"multistr": true,
1617
"newcap": true,
1718
"noarg": true,
1819
"node": true,

packages/heroku-redis-jsplugin/lib/commands/redis/cli.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@ var Heroku = require('heroku-client');
33
var readline = require('readline');
44
var net = require('net');
55

6-
var api = require('./shared.js')
7-
8-
// TODO: print using this protocol http://redis.io/topics/protocol
9-
function startsWith (a, b) {
10-
return a.indexOf(b) === -1;
11-
}
6+
var api = require('./shared.js');
127

138
function cli (url) {
149
var io = readline.createInterface(process.stdin, process.stdout);
@@ -43,24 +38,24 @@ module.exports = {
4338
args: [{name: 'database', optional: true}],
4439
run: function(context) {
4540
var heroku = new Heroku({token: context.auth.password});
46-
var filter = api.make_config_var_filter(context.args.database)
41+
var filter = api.make_config_var_filter(context.args.database);
4742
heroku.apps(context.app).configVars().info()
4843
.then(filter)
4944
.then(function (servers) {
50-
if (servers.length == 0) {
51-
console.error('No redis servers found')
45+
if (servers.length === 0) {
46+
console.error('No redis servers found');
5247
process.exit(1);
5348
} else if (servers.length > 1) {
54-
var names = []
49+
var names = [];
5550
for (var i=0; i<servers.length; i++) {
5651
names.push(servers[i].name);
5752
}
58-
console.error('Please specify a single server. Found: '+names.join(', '))
53+
console.error('Please specify a single server. Found: '+names.join(', '));
5954
process.exit(1);
6055
}
6156
var name = servers[0].name;
62-
var url = servers[0].url
63-
console.log('Connecting to: '+name)
57+
var url = servers[0].url;
58+
console.log('Connecting to: '+name);
6459
return url;
6560
})
6661
.then(url.parse)
Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
1+
var columnify = require('columnify');
12
var Heroku = require('heroku-client');
23
var Q = require('q');
34

4-
var api = require('./shared.js')
5+
var api = require('./shared.js');
56

6-
function format_addon(addon, info) {
7-
var width = 0;
8-
for (var i=0; i < info.length; i++) {
9-
width = Math.max(width, info[i].name.length)
10-
}
11-
12-
var out = []
13-
out.push("=== "+addon.config_vars[0])
14-
15-
for (var i=0; i < info.length; i++) {
16-
padding = ": "+Array(width-info[i].name.length+1).join(" ");
17-
out.push(info[i].name+padding+info[i].values.join(" "));
18-
}
19-
20-
return out;
7+
function getAddonInfo (context, addon) {
8+
var deferred = Q.defer();
9+
api.request(context, addon.name).then(function (info) {
10+
deferred.resolve({addon: addon, info: info});
11+
});
12+
return deferred.promise;
2113
}
2214

2315
module.exports = {
@@ -30,22 +22,20 @@ module.exports = {
3022
run: function(context) {
3123
var filter = api.make_addons_filter(context.args.database);
3224
var heroku = new Heroku({token: context.auth.password});
33-
25+
3426
heroku.apps(context.app).addons().list()
3527
.then(filter)
3628
.then(function(addons) {
37-
var out = []
38-
for(var i=0; i<addons.length; i++) {
39-
var r = api.request(context, addons[i].name).then(function (addon, result) {
40-
var text = format_addon(addon, result.info);
41-
console.log(text.join("\n"));
42-
43-
}.bind(this, addons[i])
44-
);
45-
out.push(r);
46-
}
47-
return Q.allSettled(out)
48-
}).done();
29+
return Q.all(addons.map(function (addon) {
30+
return getAddonInfo(context, addon);
31+
}));
32+
})
33+
.then(function (addons) {
34+
addons.forEach(function (addon) {
35+
console.log("=== " + addon.addon.config_vars[0]);
36+
console.log(columnify(addon.info.info, { showHeaders: false }));
37+
});
38+
})
39+
.done();
4940
}
5041
};
51-
Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
var Heroku = require('heroku-client');
22

33
var HOST = "redis-api.heroku.com";
4-
var PATH= "/redis/v0/databases";
5-
var PREFIX = "HEROKU_REDIS"
6-
var ADDON = "heroku-redis"
4+
var PATH = "/redis/v0/databases";
5+
var ADDON = "heroku-redis";
76

87
function request(context, path, method) {
98
return Heroku.request( {
@@ -14,7 +13,7 @@ function request(context, path, method) {
1413
headers: {
1514
'Accept': 'application/json',
1615
},
17-
})
16+
});
1817
}
1918

2019
function make_addons_filter(filter) {
@@ -24,28 +23,28 @@ function make_addons_filter(filter) {
2423

2524
function matches (addon) {
2625
for (var i=0; i<addon.config_vars.length; i++) {
27-
var cfg_name = addon.config_vars[i].toUpperCase()
26+
var cfg_name = addon.config_vars[i].toUpperCase();
2827
if (cfg_name.indexOf(filter) >= 0) {
2928
return true;
3029
}
3130
}
3231
return false;
3332
}
34-
33+
3534
function on_response(addons) {
3635
var redis_addons = [];
3736
for (var i=0; i < addons.length; i++) {
3837
var addon = addons[i];
39-
var service = addon.addon_service.name
38+
var service = addon.addon_service.name;
4039

41-
if (service.indexOf(ADDON) == 0 && (!filter || matches(addon))) {
42-
redis_addons.push(addon)
40+
if (service.indexOf(ADDON) === 0 && (!filter || matches(addon))) {
41+
redis_addons.push(addon);
4342
}
4443
}
45-
return redis_addons
44+
return redis_addons;
4645
}
4746

48-
return on_response
47+
return on_response;
4948
}
5049

5150
function make_config_var_filter(filter) {
@@ -57,21 +56,21 @@ function make_config_var_filter(filter) {
5756
var servers = [];
5857

5958
for (var name in config_vars) {
60-
var url = config_vars[name]
61-
if ((url.indexOf('redis:') == 0) && (!filter || name.indexOf(filter) >= 0)) {
62-
servers.push({url: url, name: name})
59+
if (config_vars.hasOwnProperty(name)) {
60+
var url = config_vars[name];
61+
if ((url.indexOf('redis:') === 0) && (!filter || name.indexOf(filter) >= 0)) {
62+
servers.push({url: url, name: name});
63+
}
6364
}
6465
}
65-
return servers
66+
return servers;
6667
}
6768

68-
return on_response
69+
return on_response;
6970
}
7071

7172
module.exports = {
7273
request: request,
7374
make_addons_filter: make_addons_filter,
7475
make_config_var_filter: make_config_var_filter,
75-
}
76-
77-
76+
};

packages/heroku-redis-jsplugin/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@
1919
"test": "jshint . && mocha"
2020
},
2121
"dependencies": {
22+
"columnify": "^1.4.1",
2223
"heroku-cli-util": "^1.4.0",
23-
"heroku-client": "^1.9.0",
24-
"q": "^1.1.2",
25-
"redis": "^0.12.1",
26-
"spade": "^0.50.4"
24+
"heroku-client": "^1.9.1",
25+
"q": "^1.1.2"
2726
},
2827
"devDependencies": {
28+
"chai": "*",
2929
"jshint": "*",
30+
"mocha": "*",
3031
"netrc": "*"
3132
}
3233
}

0 commit comments

Comments
 (0)