summaryrefslogtreecommitdiffstats
path: root/lib/models
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-06-06 17:27:47 +0200
committerSamy Pesse <samypesse@gmail.com>2016-06-06 17:27:47 +0200
commit30fbd22efe117f459873599311f16a2e7394aa52 (patch)
treed7b32b3ad7ade7b155c488f8b33afb2532b29696 /lib/models
parent29df73ba72cedc6ff66843dad59ffded9d4aa01b (diff)
downloadgitbook-30fbd22efe117f459873599311f16a2e7394aa52.zip
gitbook-30fbd22efe117f459873599311f16a2e7394aa52.tar.gz
gitbook-30fbd22efe117f459873599311f16a2e7394aa52.tar.bz2
Add modifier togglePlugin
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/pluginDependency.js85
1 files changed, 45 insertions, 40 deletions
diff --git a/lib/models/pluginDependency.js b/lib/models/pluginDependency.js
index f668013..8866294 100644
--- a/lib/models/pluginDependency.js
+++ b/lib/models/pluginDependency.js
@@ -6,9 +6,9 @@ var PREFIX = require('../constants/pluginPrefix');
var DEFAULT_VERSION = '*';
/*
- PluginDependency represents the informations about a plugin
- stored in config.plugins
-*/
+ * PluginDependency represents the informations about a plugin
+ * stored in config.plugins
+ */
var PluginDependency = Immutable.Record({
name: String(),
@@ -32,29 +32,39 @@ PluginDependency.prototype.isEnabled = function() {
};
/**
- Return NPM ID for the dependency
+ * Toggle this plugin state
+ * @param {Boolean}
+ * @return {PluginDependency}
+ */
+PluginDependency.prototype.toggle = function(state) {
+ if (is.undef(state)) {
+ state = !this.isEnabled();
+ }
+
+ return this.set('enabled', state);
+};
- @return {String}
-*/
+/**
+ * Return NPM ID for the dependency
+ * @return {String}
+ */
PluginDependency.prototype.getNpmID = function() {
return PluginDependency.nameToNpmID(this.getName());
};
/**
- Is the plugin using a git dependency
-
- @return {Boolean}
-*/
+ * Is the plugin using a git dependency
+ * @return {Boolean}
+ */
PluginDependency.prototype.isGitDependency = function() {
return !semver.validRange(this.getVersion());
};
/**
- Create a plugin with a name and a plugin
-
- @param {String}
- @return {Plugin|undefined}
-*/
+ * Create a plugin with a name and a plugin
+ * @param {String}
+ * @return {Plugin|undefined}
+ */
PluginDependency.create = function(name, version, enabled) {
if (is.undefined(enabled)) {
enabled = true;
@@ -68,11 +78,10 @@ PluginDependency.create = function(name, version, enabled) {
};
/**
- Create a plugin from a string
-
- @param {String}
- @return {Plugin|undefined}
-*/
+ * Create a plugin from a string
+ * @param {String}
+ * @return {Plugin|undefined}
+ */
PluginDependency.createFromString = function(s) {
var parts = s.split('@');
var name = parts[0];
@@ -92,22 +101,20 @@ PluginDependency.createFromString = function(s) {
};
/**
- Create a PluginDependency from a string
-
- @param {String}
- @return {List<PluginDependency>}
-*/
+ * Create a PluginDependency from a string
+ * @param {String}
+ * @return {List<PluginDependency>}
+ */
PluginDependency.listFromString = function(s) {
var parts = s.split(',');
return PluginDependency.listFromArray(parts);
};
/**
- Create a PluginDependency from an array
-
- @param {Array}
- @return {List<PluginDependency>}
-*/
+ * Create a PluginDependency from an array
+ * @param {Array}
+ * @return {List<PluginDependency>}
+ */
PluginDependency.listFromArray = function(arr) {
return Immutable.List(arr)
.map(function(entry) {
@@ -126,11 +133,10 @@ PluginDependency.listFromArray = function(arr) {
};
/**
- Export plugin dependencies as an array
-
- @param {List<PluginDependency>} list
- @return {Array<String>}
-*/
+ * Export plugin dependencies as an array
+ * @param {List<PluginDependency>} list
+ * @return {Array<String>}
+ */
PluginDependency.listToArray = function(list) {
return list
.map(function(dep) {
@@ -151,11 +157,10 @@ PluginDependency.listToArray = function(list) {
};
/**
- Return NPM id for a plugin name
-
- @param {String}
- @return {String}
-*/
+ * Return NPM id for a plugin name
+ * @param {String}
+ * @return {String}
+ */
PluginDependency.nameToNpmID = function(s) {
return PREFIX + s;
};