diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-04-29 23:13:31 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-04-29 23:13:31 +0200 |
commit | db1a0aedf88ef467058408a1a607ada182174c33 (patch) | |
tree | 2fac8d40a4be614eda9e376f0b0b0292125a15e4 /lib/plugins | |
parent | 01a26fda2596fc7ffefec4a7e0a79d5fc97d44ba (diff) | |
download | gitbook-db1a0aedf88ef467058408a1a607ada182174c33.zip gitbook-db1a0aedf88ef467058408a1a607ada182174c33.tar.gz gitbook-db1a0aedf88ef467058408a1a607ada182174c33.tar.bz2 |
Fix listing of plugins when contains "-"
Diffstat (limited to 'lib/plugins')
-rw-r--r-- | lib/plugins/__tests__/listAll.js | 17 | ||||
-rw-r--r-- | lib/plugins/listAll.js | 17 |
2 files changed, 30 insertions, 4 deletions
diff --git a/lib/plugins/__tests__/listAll.js b/lib/plugins/__tests__/listAll.js index 6da5b8d..71483a7 100644 --- a/lib/plugins/__tests__/listAll.js +++ b/lib/plugins/__tests__/listAll.js @@ -51,4 +51,21 @@ describe('listAll', function() { expect(great.getVersion()).toBe('git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); }); + it('must list from array with -', function() { + var plugins = listAll(['ga', '-great']); + + expect(plugins.size).toBe(7); + + expect(plugins.has('ga')).toBe(true); + expect(plugins.has('great')).toBe(false); + }); + + it('must remove default plugins using -', function() { + var plugins = listAll(['ga', '-search']); + + expect(plugins.size).toBe(6); + + expect(plugins.has('ga')).toBe(true); + expect(plugins.has('search')).toBe(false); + }); }); diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js index 8a0fc07..65b8d7f 100644 --- a/lib/plugins/listAll.js +++ b/lib/plugins/listAll.js @@ -31,12 +31,21 @@ function listAll(plugins) { // Extract list of plugins to disable (starting with -) var toRemove = plugins.toList() .filter(function(plugin) { - return plugin.getName()[0] == '-'; + return plugin.getName()[0] === '-'; }) .map(function(plugin) { - return plugin.slice(1); + return plugin.getName().slice(1); }); + // Remove the '-' + plugins = plugins.mapKeys(function(name) { + if (name[0] === '-') { + return name.slice(1); + } else { + return name; + } + }); + // Append default plugins DEFAULT_PLUGINS.forEach(function(pluginName) { if (plugins.has(pluginName)) return; @@ -48,8 +57,8 @@ function listAll(plugins) { }); // Remove plugins - plugins = plugins.filterNot(function(plugin) { - return toRemove.includes(plugin.getName()); + plugins = plugins.filterNot(function(plugin, name) { + return toRemove.includes(name); }); return plugins; |