diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-05-02 22:02:24 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-05-02 22:02:24 +0200 |
commit | 30c96c37c2145a28710e2875c677d37156fdaa92 (patch) | |
tree | 1835c91e04ef3fdbc0fbca45b4a3aa1f4dcfca35 | |
parent | 20f1cf3dff685ead53c85a9cd751ae9dacea7289 (diff) | |
download | gitbook-30c96c37c2145a28710e2875c677d37156fdaa92.zip gitbook-30c96c37c2145a28710e2875c677d37156fdaa92.tar.gz gitbook-30c96c37c2145a28710e2875c677d37156fdaa92.tar.bz2 |
Adapt Plugin.listAll to use a list of PluginDependency
-rw-r--r-- | lib/models/__tests__/pluginDependency.js | 4 | ||||
-rw-r--r-- | lib/models/plugin.js | 13 | ||||
-rw-r--r-- | lib/models/pluginDependency.js | 2 | ||||
-rw-r--r-- | lib/plugins/listAll.js | 43 |
4 files changed, 29 insertions, 33 deletions
diff --git a/lib/models/__tests__/pluginDependency.js b/lib/models/__tests__/pluginDependency.js index 70f643b..8aa55fb 100644 --- a/lib/models/__tests__/pluginDependency.js +++ b/lib/models/__tests__/pluginDependency.js @@ -30,13 +30,13 @@ describe('PluginDependency', function() { describe('GIT Version', function() { it('must handle HTTPS urls', function() { - var plugin = PluginDependency.createFromString('hello@', 'great@git+https://github.com/GitbookIO/plugin-ga.git'); + var plugin = PluginDependency.createFromString('hello@git+https://github.com/GitbookIO/plugin-ga.git'); expect(plugin.getName()).toBe('hello'); expect(plugin.getVersion()).toBe('git+https://github.com/GitbookIO/plugin-ga.git'); }); it('must handle SSH urls', function() { - var plugin = PluginDependency.createFromString('hello@', 'great@git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); + var plugin = PluginDependency.createFromString('hello@git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); expect(plugin.getName()).toBe('hello'); expect(plugin.getVersion()).toBe('git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); }); diff --git a/lib/models/plugin.js b/lib/models/plugin.js index dd7bc90..23019aa 100644 --- a/lib/models/plugin.js +++ b/lib/models/plugin.js @@ -140,6 +140,19 @@ Plugin.createFromString = function(s) { }; /** + Create a plugin from a dependency + + @param {PluginDependency} + @return {Plugin} +*/ +Plugin.createFromDep = function(dep) { + return new Plugin({ + name: dep.getName(), + version: dep.getVersion() + }); +}; + +/** Return NPM id for a plugin name @param {String} diff --git a/lib/models/pluginDependency.js b/lib/models/pluginDependency.js index 740d74f..bb8e4b4 100644 --- a/lib/models/pluginDependency.js +++ b/lib/models/pluginDependency.js @@ -46,7 +46,7 @@ PluginDependency.createFromString = function(s) { name = name.slice(1); } - return new Plugin({ + return new PluginDependency({ name: name, version: version || DEFAULT_VERSION, enabled: enabled diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js index 28be276..9b2a96b 100644 --- a/lib/plugins/listAll.js +++ b/lib/plugins/listAll.js @@ -1,4 +1,3 @@ -var is = require('is'); var Immutable = require('immutable'); var Plugin = require('../models/plugin'); @@ -8,43 +7,27 @@ var DEFAULT_PLUGINS = require('../constants/defaultPlugins'); /** List all plugins for a book - @param {List<PluginDependency>} + @param {List<PluginDependency>} deps @return {OrderedMap<Plugin>} */ -function listAll(plugins) { - if (is.string(plugins)) { - plugins = Immutable.List(plugins.split(',')); - } - - // Convert to an ordered map - plugins = plugins.map(function(plugin) { - if (is.string(plugin)) { - plugin = Plugin.createFromString(plugin); - } else { - plugin = new Plugin(plugin); - } - - return [plugin.getName(), plugin]; - }); - plugins = Immutable.OrderedMap(plugins); - +function listAll(deps) { // Extract list of plugins to disable (starting with -) - var toRemove = plugins.toList() + var toRemove = deps .filter(function(plugin) { - return plugin.getName()[0] === '-'; + return !plugin.isEnabled(); }) .map(function(plugin) { - return plugin.getName().slice(1); + return plugin.getName(); }); - // Remove the '-' - plugins = plugins.mapKeys(function(name) { - if (name[0] === '-') { - return name.slice(1); - } else { - return name; - } - }); + // Convert to an ordered map of Plugin + var plugins = deps + .map(function(dep) { + var plugin = Plugin.createFromDep(dep); + + return [dep.getName(), plugin]; + }); + plugins = Immutable.OrderedMap(plugins); // Append default plugins DEFAULT_PLUGINS.forEach(function(pluginName) { |