88f8766f46a2be6c745ee98240c078ad9ec915d7
[yaffs-website] / node_modules / grunt / lib / grunt / option.js
1 'use strict';
2
3 // The actual option data.
4 var data = {};
5
6 // Get or set an option value.
7 var option = module.exports = function(key, value) {
8   var no = key.match(/^no-(.+)$/);
9   if (arguments.length === 2) {
10     return (data[key] = value);
11   } else if (no) {
12     return data[no[1]] === false;
13   } else {
14     return data[key];
15   }
16 };
17
18 // Initialize option data.
19 option.init = function(obj) {
20   return (data = obj || {});
21 };
22
23 // List of options as flags.
24 option.flags = function() {
25   return Object.keys(data).filter(function(key) {
26     // Don't display empty arrays.
27     return !(Array.isArray(data[key]) && data[key].length === 0);
28   }).map(function(key) {
29     var val = data[key];
30     return '--' + (val === false ? 'no-' : '') + key +
31       (typeof val === 'boolean' ? '' : '=' + val);
32   });
33 };