summaryrefslogtreecommitdiffstats
path: root/lib/plugins
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-29 23:13:31 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-29 23:13:31 +0200
commitdb1a0aedf88ef467058408a1a607ada182174c33 (patch)
tree2fac8d40a4be614eda9e376f0b0b0292125a15e4 /lib/plugins
parent01a26fda2596fc7ffefec4a7e0a79d5fc97d44ba (diff)
downloadgitbook-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.js17
-rw-r--r--lib/plugins/listAll.js17
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;