l0bsterssg

node.js static responsive blog post generator
Log | Files | Refs | README

bool.js (971B)


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