Sha256: 8d34caef1bfb655d3bead68707b1f1964d22b2891ea1eff2c47a395575546007

Contents?: true

Size: 1.46 KB

Versions: 10

Compression:

Stored size: 1.46 KB

Contents

'use strict';


var NIL  = require('../common').NIL;
var Type = require('../type');


var YAML_IMPLICIT_BOOLEAN_MAP = {
  'true'  : true,
  'True'  : true,
  'TRUE'  : true,
  'false' : false,
  'False' : false,
  'FALSE' : false
};

var YAML_EXPLICIT_BOOLEAN_MAP = {
  'true'  : true,
  'True'  : true,
  'TRUE'  : true,
  'false' : false,
  'False' : false,
  'FALSE' : false,
  'y'     : true,
  'Y'     : true,
  'yes'   : true,
  'Yes'   : true,
  'YES'   : true,
  'n'     : false,
  'N'     : false,
  'no'    : false,
  'No'    : false,
  'NO'    : false,
  'on'    : true,
  'On'    : true,
  'ON'    : true,
  'off'   : false,
  'Off'   : false,
  'OFF'   : false
};


function resolveYamlBoolean(object, explicit) {
  if (explicit) {
    if (YAML_EXPLICIT_BOOLEAN_MAP.hasOwnProperty(object)) {
      return YAML_EXPLICIT_BOOLEAN_MAP[object];
    } else {
      return NIL;
    }
  } else {
    if (YAML_IMPLICIT_BOOLEAN_MAP.hasOwnProperty(object)) {
      return YAML_IMPLICIT_BOOLEAN_MAP[object];
    } else {
      return NIL;
    }
  }
}


module.exports = new Type('tag:yaml.org,2002:bool', {
  loader: {
    kind: 'string',
    resolver: resolveYamlBoolean
  },
  dumper: {
    kind: 'boolean',
    defaultStyle: 'lowercase',
    representer: {
      lowercase: function (object) { return object ? 'true' : 'false'; },
      uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
      camelcase: function (object) { return object ? 'True' : 'False'; }
    }
  }
});

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
entangled-0.0.16 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.15 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.14 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.13 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.12 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.11 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
entangled-0.0.10 spec/dummy/public/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
trans-0.5.10 template/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
trans-0.5.9 template/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js
cssesc-source-0.1.0 vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js