This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
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.
84 lines
2.6 KiB
84 lines
2.6 KiB
// Generated by CoffeeScript 1.9.1 |
|
(function() { |
|
var XMLDTDEntity, create, isObject; |
|
|
|
create = require('lodash/object/create'); |
|
|
|
isObject = require('lodash/lang/isObject'); |
|
|
|
module.exports = XMLDTDEntity = (function() { |
|
function XMLDTDEntity(parent, pe, name, value) { |
|
this.stringify = parent.stringify; |
|
if (name == null) { |
|
throw new Error("Missing entity name"); |
|
} |
|
if (value == null) { |
|
throw new Error("Missing entity value"); |
|
} |
|
this.pe = !!pe; |
|
this.name = this.stringify.eleName(name); |
|
if (!isObject(value)) { |
|
this.value = this.stringify.dtdEntityValue(value); |
|
} else { |
|
if (!value.pubID && !value.sysID) { |
|
throw new Error("Public and/or system identifiers are required for an external entity"); |
|
} |
|
if (value.pubID && !value.sysID) { |
|
throw new Error("System identifier is required for a public external entity"); |
|
} |
|
if (value.pubID != null) { |
|
this.pubID = this.stringify.dtdPubID(value.pubID); |
|
} |
|
if (value.sysID != null) { |
|
this.sysID = this.stringify.dtdSysID(value.sysID); |
|
} |
|
if (value.nData != null) { |
|
this.nData = this.stringify.dtdNData(value.nData); |
|
} |
|
if (this.pe && this.nData) { |
|
throw new Error("Notation declaration is not allowed in a parameter entity"); |
|
} |
|
} |
|
} |
|
|
|
XMLDTDEntity.prototype.toString = function(options, level) { |
|
var indent, newline, offset, pretty, r, ref, ref1, ref2, space; |
|
pretty = (options != null ? options.pretty : void 0) || false; |
|
indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; |
|
offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; |
|
newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; |
|
level || (level = 0); |
|
space = new Array(level + offset + 1).join(indent); |
|
r = ''; |
|
if (pretty) { |
|
r += space; |
|
} |
|
r += '<!ENTITY'; |
|
if (this.pe) { |
|
r += ' %'; |
|
} |
|
r += ' ' + this.name; |
|
if (this.value) { |
|
r += ' "' + this.value + '"'; |
|
} else { |
|
if (this.pubID && this.sysID) { |
|
r += ' PUBLIC "' + this.pubID + '" "' + this.sysID + '"'; |
|
} else if (this.sysID) { |
|
r += ' SYSTEM "' + this.sysID + '"'; |
|
} |
|
if (this.nData) { |
|
r += ' NDATA ' + this.nData; |
|
} |
|
} |
|
r += '>'; |
|
if (pretty) { |
|
r += newline; |
|
} |
|
return r; |
|
}; |
|
|
|
return XMLDTDEntity; |
|
|
|
})(); |
|
|
|
}).call(this);
|
|
|