doc/helpers.js.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: helpers.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: helpers.js</h1>
<section>
<article>
<pre class="prettyprint source"><code>/**
* @module helpers
* @author Risto Stevcev
*/
var fs = require('fs');
/**
* Helper functions
* @memberof module:helpers
* @property {Function} helpers.argsToOptions - Returns an options list from an flags list
* @property {Function} helpers.allFlagsPassed - Check if all flags are passed
* @property {Function} helpers.allFlagSetsPassed - Check if a single flag in each set is passed
* @property {Function} helpers.oneFlagPassed - Check if exactly one flag is passed
* @property {Function} helpers.fileExists - Check if a file or files exist
*/
module.exports = {
argsToOptions: function(args, delimiter) {
'use strict';
if (!delimiter) {
delimiter = ' or ';
}
return args.map(function(arg) {
return this.options[this.flagToName(arg)];
}, this)
.reduce(function(previous, current) {
return (previous ? previous + delimiter : '') +
(current ? '['+ current.shortFlag +' | '+ current.longFlag +']' : '');
}, '');
},
allFlagsPassed: function(flags) {
'use strict';
return flags.every(function(flag) {
var option = this.options[this.flagToName(flag)];
if (!option) {
return false;
}
else {
return this.parsedOptions[option.shortFlagName] ||
this.parsedOptions[option.longFlagName];
}
}, this);
},
allFlagSetsPassed: function(flagSets) {
'use strict';
return flagSets.every(function(flagSet) {
return module.exports.oneFlagPassed.call(this, flagSet);
}, this);
},
oneFlagPassed: function(flags) {
'use strict';
var numFlagsPassed = 0;
flags.forEach(function(flag) {
var option = this.options[this.flagToName(flag)];
if (option) {
if (this.parsedOptions[option.shortFlagName] !== undefined ||
this.parsedOptions[option.longFlagName] !== undefined) {
numFlagsPassed += 1;
}
}
}, this);
return numFlagsPassed === 1;
},
fileExists: function(flags) {
'use strict';
return flags.every(function(flag) {
var option = this.options[this.flagToName(flag)];
if (option.value !== undefined) {
if (option.type === Array) {
return option.value.every(function(flagName) {
return fs.existsSync(flagName);
});
}
else if (option.type === String) {
return fs.existsSync(option.value);
}
else {
return false;
}
}
else {
return true;
}
}, this);
}
};
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-helpers.html">helpers</a></li><li><a href="module-rules.html">rules</a></li><li><a href="module-yumparse.html">yumparse</a></li></ul><h3>Classes</h3><ul><li><a href="module-yumparse.Parser.html">Parser</a></li><li><a href="module-yumparse.Parser-YumparseError.html">YumparseError</a></li></ul>
</nav>
<br clear="both">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Dec 29 2014 23:32:09 GMT-0800 (PST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>