| 
						 | 
						- // Generated by CoffeeScript 1.12.7
 - (function() {
 -   "use strict";
 -   var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,
 -     hasProp = {}.hasOwnProperty;
 - 
 -   builder = require('xmlbuilder');
 - 
 -   defaults = require('./defaults').defaults;
 - 
 -   requiresCDATA = function(entry) {
 -     return typeof entry === "string" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);
 -   };
 - 
 -   wrapCDATA = function(entry) {
 -     return "<![CDATA[" + (escapeCDATA(entry)) + "]]>";
 -   };
 - 
 -   escapeCDATA = function(entry) {
 -     return entry.replace(']]>', ']]]]><![CDATA[>');
 -   };
 - 
 -   exports.Builder = (function() {
 -     function Builder(opts) {
 -       var key, ref, value;
 -       this.options = {};
 -       ref = defaults["0.2"];
 -       for (key in ref) {
 -         if (!hasProp.call(ref, key)) continue;
 -         value = ref[key];
 -         this.options[key] = value;
 -       }
 -       for (key in opts) {
 -         if (!hasProp.call(opts, key)) continue;
 -         value = opts[key];
 -         this.options[key] = value;
 -       }
 -     }
 - 
 -     Builder.prototype.buildObject = function(rootObj) {
 -       var attrkey, charkey, render, rootElement, rootName;
 -       attrkey = this.options.attrkey;
 -       charkey = this.options.charkey;
 -       if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {
 -         rootName = Object.keys(rootObj)[0];
 -         rootObj = rootObj[rootName];
 -       } else {
 -         rootName = this.options.rootName;
 -       }
 -       render = (function(_this) {
 -         return function(element, obj) {
 -           var attr, child, entry, index, key, value;
 -           if (typeof obj !== 'object') {
 -             if (_this.options.cdata && requiresCDATA(obj)) {
 -               element.raw(wrapCDATA(obj));
 -             } else {
 -               element.txt(obj);
 -             }
 -           } else if (Array.isArray(obj)) {
 -             for (index in obj) {
 -               if (!hasProp.call(obj, index)) continue;
 -               child = obj[index];
 -               for (key in child) {
 -                 entry = child[key];
 -                 element = render(element.ele(key), entry).up();
 -               }
 -             }
 -           } else {
 -             for (key in obj) {
 -               if (!hasProp.call(obj, key)) continue;
 -               child = obj[key];
 -               if (key === attrkey) {
 -                 if (typeof child === "object") {
 -                   for (attr in child) {
 -                     value = child[attr];
 -                     element = element.att(attr, value);
 -                   }
 -                 }
 -               } else if (key === charkey) {
 -                 if (_this.options.cdata && requiresCDATA(child)) {
 -                   element = element.raw(wrapCDATA(child));
 -                 } else {
 -                   element = element.txt(child);
 -                 }
 -               } else if (Array.isArray(child)) {
 -                 for (index in child) {
 -                   if (!hasProp.call(child, index)) continue;
 -                   entry = child[index];
 -                   if (typeof entry === 'string') {
 -                     if (_this.options.cdata && requiresCDATA(entry)) {
 -                       element = element.ele(key).raw(wrapCDATA(entry)).up();
 -                     } else {
 -                       element = element.ele(key, entry).up();
 -                     }
 -                   } else {
 -                     element = render(element.ele(key), entry).up();
 -                   }
 -                 }
 -               } else if (typeof child === "object") {
 -                 element = render(element.ele(key), child).up();
 -               } else {
 -                 if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {
 -                   element = element.ele(key).raw(wrapCDATA(child)).up();
 -                 } else {
 -                   if (child == null) {
 -                     child = '';
 -                   }
 -                   element = element.ele(key, child.toString()).up();
 -                 }
 -               }
 -             }
 -           }
 -           return element;
 -         };
 -       })(this);
 -       rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
 -         headless: this.options.headless,
 -         allowSurrogateChars: this.options.allowSurrogateChars
 -       });
 -       return render(rootElement, rootObj).end(this.options.renderOpts);
 -     };
 - 
 -     return Builder;
 - 
 -   })();
 - 
 - }).call(this);
 
 
  |