You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
1.7 KiB
118 lines
1.7 KiB
9 years ago
|
|
||
|
/*!
|
||
|
* Stylus - Boolean
|
||
|
* Copyright (c) Automattic <developer.wordpress.com>
|
||
|
* MIT Licensed
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Module dependencies.
|
||
|
*/
|
||
|
|
||
|
var Node = require('./node')
|
||
|
, nodes = require('./');
|
||
|
|
||
|
/**
|
||
|
* Initialize a new `Boolean` node with the given `val`.
|
||
|
*
|
||
|
* @param {Boolean} val
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
var Boolean = module.exports = function Boolean(val){
|
||
|
Node.call(this);
|
||
|
if (this.nodeName) {
|
||
|
this.val = !!val;
|
||
|
} else {
|
||
|
return new Boolean(val);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Inherit from `Node.prototype`.
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.__proto__ = Node.prototype;
|
||
|
|
||
|
/**
|
||
|
* Return `this` node.
|
||
|
*
|
||
|
* @return {Boolean}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.toBoolean = function(){
|
||
|
return this;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Return `true` if this node represents `true`.
|
||
|
*
|
||
|
* @return {Boolean}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.__defineGetter__('isTrue', function(){
|
||
|
return this.val;
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Return `true` if this node represents `false`.
|
||
|
*
|
||
|
* @return {Boolean}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.__defineGetter__('isFalse', function(){
|
||
|
return ! this.val;
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Negate the value.
|
||
|
*
|
||
|
* @return {Boolean}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.negate = function(){
|
||
|
return new Boolean(!this.val);
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Return 'Boolean'.
|
||
|
*
|
||
|
* @return {String}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.inspect = function(){
|
||
|
return '[Boolean ' + this.val + ']';
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Return 'true' or 'false'.
|
||
|
*
|
||
|
* @return {String}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.toString = function(){
|
||
|
return this.val
|
||
|
? 'true'
|
||
|
: 'false';
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Return a JSON representaiton of this node.
|
||
|
*
|
||
|
* @return {Object}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Boolean.prototype.toJSON = function(){
|
||
|
return {
|
||
|
__type: 'Boolean',
|
||
|
val: this.val
|
||
|
};
|
||
|
};
|