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.
32 lines
530 B
32 lines
530 B
9 years ago
|
|
||
|
/*!
|
||
|
* Stylus - Visitor
|
||
|
* Copyright (c) Automattic <developer.wordpress.com>
|
||
|
* MIT Licensed
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Initialize a new `Visitor` with the given `root` Node.
|
||
|
*
|
||
|
* @param {Node} root
|
||
|
* @api private
|
||
|
*/
|
||
|
|
||
|
var Visitor = module.exports = function Visitor(root) {
|
||
|
this.root = root;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Visit the given `node`.
|
||
|
*
|
||
|
* @param {Node|Array} node
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
Visitor.prototype.visit = function(node, fn){
|
||
|
var method = 'visit' + node.constructor.name;
|
||
|
if (this[method]) return this[method](node);
|
||
|
return node;
|
||
|
};
|
||
|
|