91 lines
2.8 KiB
JavaScript
91 lines
2.8 KiB
JavaScript
|
// Generated by CoffeeScript 1.12.7
|
||
|
(function() {
|
||
|
var XMLWriterBase,
|
||
|
hasProp = {}.hasOwnProperty;
|
||
|
|
||
|
module.exports = XMLWriterBase = (function() {
|
||
|
function XMLWriterBase(options) {
|
||
|
var key, ref, ref1, ref2, ref3, ref4, ref5, ref6, value;
|
||
|
options || (options = {});
|
||
|
this.pretty = options.pretty || false;
|
||
|
this.allowEmpty = (ref = options.allowEmpty) != null ? ref : false;
|
||
|
if (this.pretty) {
|
||
|
this.indent = (ref1 = options.indent) != null ? ref1 : ' ';
|
||
|
this.newline = (ref2 = options.newline) != null ? ref2 : '\n';
|
||
|
this.offset = (ref3 = options.offset) != null ? ref3 : 0;
|
||
|
this.dontprettytextnodes = (ref4 = options.dontprettytextnodes) != null ? ref4 : 0;
|
||
|
} else {
|
||
|
this.indent = '';
|
||
|
this.newline = '';
|
||
|
this.offset = 0;
|
||
|
this.dontprettytextnodes = 0;
|
||
|
}
|
||
|
this.spacebeforeslash = (ref5 = options.spacebeforeslash) != null ? ref5 : '';
|
||
|
if (this.spacebeforeslash === true) {
|
||
|
this.spacebeforeslash = ' ';
|
||
|
}
|
||
|
this.newlinedefault = this.newline;
|
||
|
this.prettydefault = this.pretty;
|
||
|
ref6 = options.writer || {};
|
||
|
for (key in ref6) {
|
||
|
if (!hasProp.call(ref6, key)) continue;
|
||
|
value = ref6[key];
|
||
|
this[key] = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
XMLWriterBase.prototype.set = function(options) {
|
||
|
var key, ref, value;
|
||
|
options || (options = {});
|
||
|
if ("pretty" in options) {
|
||
|
this.pretty = options.pretty;
|
||
|
}
|
||
|
if ("allowEmpty" in options) {
|
||
|
this.allowEmpty = options.allowEmpty;
|
||
|
}
|
||
|
if (this.pretty) {
|
||
|
this.indent = "indent" in options ? options.indent : ' ';
|
||
|
this.newline = "newline" in options ? options.newline : '\n';
|
||
|
this.offset = "offset" in options ? options.offset : 0;
|
||
|
this.dontprettytextnodes = "dontprettytextnodes" in options ? options.dontprettytextnodes : 0;
|
||
|
} else {
|
||
|
this.indent = '';
|
||
|
this.newline = '';
|
||
|
this.offset = 0;
|
||
|
this.dontprettytextnodes = 0;
|
||
|
}
|
||
|
this.spacebeforeslash = "spacebeforeslash" in options ? options.spacebeforeslash : '';
|
||
|
if (this.spacebeforeslash === true) {
|
||
|
this.spacebeforeslash = ' ';
|
||
|
}
|
||
|
this.newlinedefault = this.newline;
|
||
|
this.prettydefault = this.pretty;
|
||
|
ref = options.writer || {};
|
||
|
for (key in ref) {
|
||
|
if (!hasProp.call(ref, key)) continue;
|
||
|
value = ref[key];
|
||
|
this[key] = value;
|
||
|
}
|
||
|
return this;
|
||
|
};
|
||
|
|
||
|
XMLWriterBase.prototype.space = function(level) {
|
||
|
var indent;
|
||
|
if (this.pretty) {
|
||
|
indent = (level || 0) + this.offset + 1;
|
||
|
if (indent > 0) {
|
||
|
return new Array(indent).join(this.indent);
|
||
|
} else {
|
||
|
return '';
|
||
|
}
|
||
|
} else {
|
||
|
return '';
|
||
|
}
|
||
|
};
|
||
|
|
||
|
return XMLWriterBase;
|
||
|
|
||
|
})();
|
||
|
|
||
|
}).call(this);
|