whole_func_string: function defineFlags(options, allOption) {
      var i = 0,
          obj = {};
  
      if (allOption) {
          obj[allOption] = 1;
      }
      _.each(options, function (opt) {
          obj[opt] = 1 << i;
  
          if (allOption) {
              obj[allOption] |= obj[opt];
          }
  
          i += 1;
      });
  
      return obj;
  }
func_code_string: function defineFlags(options, allOption) {
      var i = 0,
          obj = {};
  
      if (allOption) {
          obj[allOption] = 1;
      }
      _.each(options, function (opt) {
          obj[opt] = 1 << i;
  
          if (allOption) {
              obj[allOption] |= obj[opt];
          }
  
          i += 1;
      });
  
      return obj;
  }
func_documentation_string: Create a set of flags that can be OR'd (|) together to define a set of
  options.
  
  @param {Array} options An array of strings defining the option names.
  @param {string} allOption If you want an option that enables all options,
  pass its name as this parameter.
  @return {Object} An object mapping the names of options to values.