'use strict';
|
|
var Type = require('../type');
|
|
function resolveYamlBoolean(data) {
|
if (data === null) return false;
|
|
var max = data.length;
|
|
return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
|
(max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
|
}
|
|
function constructYamlBoolean(data) {
|
return data === 'true' ||
|
data === 'True' ||
|
data === 'TRUE';
|
}
|
|
function isBoolean(object) {
|
return Object.prototype.toString.call(object) === '[object Boolean]';
|
}
|
|
module.exports = new Type('tag:yaml.org,2002:bool', {
|
kind: 'scalar',
|
resolve: resolveYamlBoolean,
|
construct: constructYamlBoolean,
|
predicate: isBoolean,
|
represent: {
|
lowercase: function (object) { return object ? 'true' : 'false'; },
|
uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
|
camelcase: function (object) { return object ? 'True' : 'False'; }
|
},
|
defaultStyle: 'lowercase'
|
});
|