| (function() { |
| var LessPlugin; |
| |
| module.exports = LessPlugin = (function() { |
| LessPlugin.identifier = 'less'; |
| |
| LessPlugin.version = '1.0'; |
| |
| function LessPlugin(window, host) { |
| this.window = window; |
| this.host = host; |
| } |
| |
| LessPlugin.prototype.reload = function(path, options) { |
| if (this.window.less && this.window.less.refresh) { |
| if (path.match(/\.less$/i)) { |
| return this.reloadLess(path); |
| } |
| if (options.originalPath.match(/\.less$/i)) { |
| return this.reloadLess(options.originalPath); |
| } |
| } |
| return false; |
| }; |
| |
| LessPlugin.prototype.reloadLess = function(path) { |
| var i, len, link, links; |
| links = (function() { |
| var i, len, ref, results; |
| ref = document.getElementsByTagName('link'); |
| results = []; |
| for (i = 0, len = ref.length; i < len; i++) { |
| link = ref[i]; |
| if (link.href && link.rel.match(/^stylesheet\/less$/i) || (link.rel.match(/stylesheet/i) && link.type.match(/^text\/(x-)?less$/i))) { |
| results.push(link); |
| } |
| } |
| return results; |
| })(); |
| if (links.length === 0) { |
| return false; |
| } |
| for (i = 0, len = links.length; i < len; i++) { |
| link = links[i]; |
| link.href = this.host.generateCacheBustUrl(link.href); |
| } |
| this.host.console.log("LiveReload is asking LESS to recompile all stylesheets"); |
| this.window.less.refresh(true); |
| return true; |
| }; |
| |
| LessPlugin.prototype.analyze = function() { |
| return { |
| disable: !!(this.window.less && this.window.less.refresh) |
| }; |
| }; |
| |
| return LessPlugin; |
| |
| })(); |
| |
| }).call(this); |