Risto-Stevcev/yumparse

View on GitHub
doc/helpers.js.html

Summary

Maintainability
Test Coverage
<!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>