File: //usr/share/nodejs/turbolinks/src/turbolinks/renderer.js
// Generated by CoffeeScript 1.12.8
(function() {
var slice = [].slice;
Turbolinks.Renderer = (function() {
var copyElementAttributes;
function Renderer() {}
Renderer.render = function() {
var args, callback, delegate, renderer;
delegate = arguments[0], callback = arguments[1], args = 3 <= arguments.length ? slice.call(arguments, 2) : [];
renderer = (function(func, args, ctor) {
ctor.prototype = func.prototype;
var child = new ctor, result = func.apply(child, args);
return Object(result) === result ? result : child;
})(this, args, function(){});
renderer.delegate = delegate;
renderer.render(callback);
return renderer;
};
Renderer.prototype.renderView = function(callback) {
this.delegate.viewWillRender(this.newBody);
callback();
return this.delegate.viewRendered(this.newBody);
};
Renderer.prototype.invalidateView = function() {
return this.delegate.viewInvalidated();
};
Renderer.prototype.createScriptElement = function(element) {
var createdScriptElement;
if (element.getAttribute("data-turbolinks-eval") === "false") {
return element;
} else {
createdScriptElement = document.createElement("script");
createdScriptElement.textContent = element.textContent;
createdScriptElement.async = false;
copyElementAttributes(createdScriptElement, element);
return createdScriptElement;
}
};
copyElementAttributes = function(destinationElement, sourceElement) {
var i, len, name, ref, ref1, results, value;
ref = sourceElement.attributes;
results = [];
for (i = 0, len = ref.length; i < len; i++) {
ref1 = ref[i], name = ref1.name, value = ref1.value;
results.push(destinationElement.setAttribute(name, value));
}
return results;
};
return Renderer;
})();
}).call(this);