5c2a304d8a46d8f11cd9d752d15f81f54b8a5627
[platform/framework/web/crosswalk-tizen.git] /
1 'use strict';
2
3 var Type = require('../type');
4
5 function resolveYamlBoolean(data) {
6   if (null === data) {
7     return false;
8   }
9
10   var max = data.length;
11
12   return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
13          (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
14 }
15
16 function constructYamlBoolean(data) {
17   return data === 'true' ||
18          data === 'True' ||
19          data === 'TRUE';
20 }
21
22 function isBoolean(object) {
23   return '[object Boolean]' === Object.prototype.toString.call(object);
24 }
25
26 module.exports = new Type('tag:yaml.org,2002:bool', {
27   kind: 'scalar',
28   resolve: resolveYamlBoolean,
29   construct: constructYamlBoolean,
30   predicate: isBoolean,
31   represent: {
32     lowercase: function (object) { return object ? 'true' : 'false'; },
33     uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
34     camelcase: function (object) { return object ? 'True' : 'False'; }
35   },
36   defaultStyle: 'lowercase'
37 });