| (function() { |
| var Options; |
| |
| exports.Options = Options = (function() { |
| function Options() { |
| this.https = false; |
| this.host = null; |
| this.port = 35729; |
| this.snipver = null; |
| this.ext = null; |
| this.extver = null; |
| this.mindelay = 1000; |
| this.maxdelay = 60000; |
| this.handshake_timeout = 5000; |
| } |
| |
| Options.prototype.set = function(name, value) { |
| if (typeof value === 'undefined') { |
| return; |
| } |
| if (!isNaN(+value)) { |
| value = +value; |
| } |
| return this[name] = value; |
| }; |
| |
| return Options; |
| |
| })(); |
| |
| Options.extract = function(document) { |
| var element, i, j, keyAndValue, len, len1, m, mm, options, pair, ref, ref1, src; |
| ref = document.getElementsByTagName('script'); |
| for (i = 0, len = ref.length; i < len; i++) { |
| element = ref[i]; |
| if ((src = element.src) && (m = src.match(/^[^:]+:\/\/(.*)\/z?livereload\.js(?:\?(.*))?$/))) { |
| options = new Options(); |
| options.https = src.indexOf("https") === 0; |
| if (mm = m[1].match(/^([^\/:]+)(?::(\d+))?(\/+.*)?$/)) { |
| options.host = mm[1]; |
| if (mm[2]) { |
| options.port = parseInt(mm[2], 10); |
| } |
| } |
| if (m[2]) { |
| ref1 = m[2].split('&'); |
| for (j = 0, len1 = ref1.length; j < len1; j++) { |
| pair = ref1[j]; |
| if ((keyAndValue = pair.split('=')).length > 1) { |
| options.set(keyAndValue[0].replace(/-/g, '_'), keyAndValue.slice(1).join('=')); |
| } |
| } |
| } |
| return options; |
| } |
| } |
| return null; |
| }; |
| |
| }).call(this); |