| 1234567891011121314151617181920212223242526272829303132333435 | 
							- 'use strict';
 
- var _ = require('lodash');
 
- /**
 
-  * Choice object
 
-  * Normalize input as choice object
 
-  * @constructor
 
-  * @param {String|Object} val  Choice value. If an object is passed, it should contains
 
-  *                             at least one of `value` or `name` property
 
-  */
 
- var Choice = module.exports = function (val, answers) {
 
-   // Don't process Choice and Separator object
 
-   if (val instanceof Choice || val.type === 'separator') {
 
-     return val;
 
-   }
 
-   if (_.isString(val)) {
 
-     this.name = val;
 
-     this.value = val;
 
-     this.short = val;
 
-   } else {
 
-     _.extend(this, val, {
 
-       name: val.name || val.value,
 
-       value: 'value' in val ? val.value : val.name,
 
-       short: val.short || val.name || val.value
 
-     });
 
-   }
 
-   if (_.isFunction(val.disabled)) {
 
-     this.disabled = val.disabled(answers);
 
-   } else {
 
-     this.disabled = val.disabled;
 
-   }
 
- };
 
 
  |