([\\s\\S]*?)<\\/div>/g, '$1\\n');\n },\n location: function() {\n return window.location.hash;\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/log");minispade.register('travis/model', "(function() {(function() {\n\n this.Travis.Model = DS.Model.extend({\n primaryKey: 'id',\n id: DS.attr('number'),\n refresh: function() {\n var id;\n id = this.get('id');\n if (id) {\n return Travis.app.store.adapter.find(Travis.app.store, this.constructor, id);\n }\n },\n update: function(attrs) {\n var _this = this;\n $.each(attrs, function(key, value) {\n if (key !== 'id') {\n return _this.set(key, value);\n }\n });\n return this;\n }\n });\n\n this.Travis.Model.reopenClass({\n find: function() {\n if (arguments.length === 0) {\n return Travis.app.store.findAll(this);\n } else {\n return this._super.apply(this, arguments);\n }\n },\n filter: function(callback) {\n return Travis.app.store.filter(this, callback);\n },\n load: function(attrs) {\n return Travis.app.store.load(this, attrs);\n },\n buildURL: function(suffix) {\n var base, url;\n base = this.url || this.pluralName();\n Ember.assert('Base URL (' + base + ') must not start with slash', !base || base.toString().charAt(0) !== '/');\n Ember.assert('URL suffix (' + suffix + ') must not start with slash', !suffix || suffix.toString().charAt(0) !== '/');\n url = [base];\n if (suffix !== void 0) {\n url.push(suffix);\n }\n return url.join('/');\n },\n singularName: function() {\n var name, parts;\n parts = this.toString().split('.');\n name = parts[parts.length - 1];\n return name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);\n },\n pluralName: function() {\n return Travis.app.store.adapter.pluralize(this.singularName());\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/model");minispade.register('travis/ticker', "(function() {(function() {\n\n this.Travis.Ticker = Ember.Object.extend({\n init: function() {\n if (this.get('interval') !== -1) {\n return this.schedule();\n }\n },\n tick: function() {\n var context, target, targets, _i, _len;\n context = this.get('context');\n targets = this.get('targets') || [this.get('target')];\n for (_i = 0, _len = targets.length; _i < _len; _i++) {\n target = targets[_i];\n if (context) {\n target = context.get(target);\n }\n if (target) {\n target.tick();\n }\n }\n return this.schedule();\n },\n schedule: function() {\n var _this = this;\n return Ember.run.later((function() {\n return _this.tick();\n }), this.get('interval') || Travis.app.TICK_INTERVAL);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ticker");minispade.register('travis', "(function() {(function() {\nminispade.require('ext/jquery');\nminispade.require('ext/ember/namespace');\n\n this.Travis = Em.Namespace.create({\n config: {\n api_endpoint: $('meta[rel=\"travis.api_endpoint\"]').attr('href')\n },\n CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'],\n ROUTES: {\n 'profile/:login/me': ['profile', 'user'],\n 'profile/:login': ['profile', 'hooks'],\n 'profile': ['profile', 'hooks'],\n 'stats': ['stats', 'show'],\n ':owner/:name/jobs/:id/:line': ['home', 'job'],\n ':owner/:name/jobs/:id': ['home', 'job'],\n ':owner/:name/builds/:id': ['home', 'build'],\n ':owner/:name/builds': ['home', 'builds'],\n ':owner/:name/pull_requests': ['home', 'pullRequests'],\n ':owner/:name/branches': ['home', 'branches'],\n ':owner/:name': ['home', 'current'],\n '': ['home', 'index'],\n '#': ['home', 'index']\n },\n QUEUES: [\n {\n name: 'common',\n display: 'Common'\n }, {\n name: 'php',\n display: 'PHP, Perl and Python'\n }, {\n name: 'node_js',\n display: 'Node.js'\n }, {\n name: 'jvmotp',\n display: 'JVM and Erlang'\n }, {\n name: 'rails',\n display: 'Rails'\n }, {\n name: 'spree',\n display: 'Spree'\n }\n ],\n INTERVALS: {\n sponsors: -1,\n times: -1,\n updateTimes: 1000\n },\n run: function(attrs) {\n var _this = this;\n return $(function() {\n _this.redirectOnHashbang();\n return _this.loadConfig(function(config) {\n var app;\n app = Travis.App.create(attrs || {});\n $.each(Travis, function(key, value) {\n if (value && value.isClass && key !== 'constructor') {\n return app[key] = value;\n }\n });\n _this.app = app;\n _this.store = app.store;\n return app.initialize();\n });\n });\n },\n redirectOnHashbang: function() {\n if (location.hash.slice(0, 2) === '#!') {\n return location.href = location.href.replace('#!/', '');\n }\n },\n loadConfig: function(callback) {\n var _this = this;\n return this.get('/config', function(data) {\n $.extend(_this.config, data.config);\n console.log(\"Connecting to \" + data.config.api_endpoint);\n return callback(data.config);\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis");minispade.register('templates', "(function() {\nEmber.TEMPLATES['application'] = Ember.Handlebars.template(function anonymous(Handlebars, depth0, helpers, partials, data) { helpers = helpers || Ember.Handlebars.helpers;\n var buffer = '', stack1, escapeExpression=this.escapeExpression;\n\n\n stack1 = helpers._triageMustache.call(depth0, \"outlet\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n\\n\");\n return buffer;\n});\n\nEmber.TEMPLATES['builds/list'] = Ember.Handlebars.template(function anonymous(Handlebars, depth0, helpers, partials, data) { helpers = helpers || Ember.Handlebars.helpers;\n var buffer = '', stack1, escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;\n\nfunction program1(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\\n \\n \\n \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.name\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.name\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \" | \\n \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.commit\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.commit\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \" | \\n \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.message\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.message\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \" | \\n \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.duration\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.duration\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \" | \\n \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.finished_at\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.finished_at\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \" | \\n
\\n \\n\\n \\n \");\n stack1 = helpers.each.call(depth0, \"build\", \"in\", \"builds\", {hash:{},inverse:self.noop,fn:self.program(2, program2, data),contexts:[depth0,depth0,depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \\n
\\n
\\n \");\n stack1 = helpers.view.call(depth0, \"view.ShowMoreButton\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n
\\n\");\n return buffer;}\nfunction program2(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n \");\n stack1 = {};\n stack1['contextBinding'] = \"build\";\n stack1 = helpers.view.call(depth0, \"Travis.BuildsItemView\", {hash:stack1,inverse:self.noop,fn:self.program(3, program3, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \");\n return buffer;}\nfunction program3(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\\n \\n \");\n stack1 = helpers['if'].call(depth0, \"id\", {hash:{},inverse:self.noop,fn:self.program(4, program4, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n | \\n
\\n \\n \");\n foundHelper = helpers.formatCommit;\n stack1 = foundHelper ? foundHelper.call(depth0, \"commit\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatCommit\", \"commit\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \\n | \\n
\\n \");\n stack1 = {};\n stack1['short'] = \"true\";\n foundHelper = helpers.formatMessage;\n stack1 = foundHelper ? foundHelper.call(depth0, \"commit.message\", {hash:stack1,contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatMessage\", \"commit.message\", {hash:stack1,contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n | \\n
\\n \");\n foundHelper = helpers.formatDuration;\n stack1 = foundHelper ? foundHelper.call(depth0, \"duration\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatDuration\", \"duration\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n | \\n
\\n \");\n foundHelper = helpers.formatTime;\n stack1 = foundHelper ? foundHelper.call(depth0, \"finishedAt\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatTime\", \"finishedAt\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n | \\n \");\n return buffer;}\nfunction program4(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n
\\n \");\n stack1 = helpers._triageMustache.call(depth0, \"number\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \\n \");\n return buffer;}\n\nfunction program6(depth0,data) {\n \n \n data.buffer.push(\"\\n
Loading
\\n\");}\n\n stack1 = helpers['if'].call(depth0, \"builds.isLoaded\", {hash:{},inverse:self.program(6, program6, data),fn:self.program(1, program1, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n\\n\");\n return buffer;\n});\n\nEmber.TEMPLATES['builds/show'] = Ember.Handlebars.template(function anonymous(Handlebars, depth0, helpers, partials, data) { helpers = helpers || Ember.Handlebars.helpers;\n var buffer = '', stack1, escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n \");\n stack1 = helpers['if'].call(depth0, \"loading\", {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n\");\n return buffer;}\nfunction program2(depth0,data) {\n \n \n data.buffer.push(\"\\n
Loading\\n \");}\n\nfunction program4(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\\n \\n
- \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.name\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.name\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n - \\n \\n \");\n stack1 = helpers['if'].call(depth0, \"build.id\", {hash:{},inverse:self.noop,fn:self.program(5, program5, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n
\\n - \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.finished_at\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.finished_at\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n - \");\n foundHelper = helpers.formatTime;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.finishedAt\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatTime\", \"build.finishedAt\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n - \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.duration\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.duration\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n - \");\n foundHelper = helpers.formatDuration;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.duration\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatDuration\", \"build.duration\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n \\n\\n \\n
- \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.commit\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.commit\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n
- \");\n foundHelper = helpers.formatCommit;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.commit\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatCommit\", \"build.commit\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n \");\n stack1 = helpers['if'].call(depth0, \"commit.compareUrl\", {hash:{},inverse:self.noop,fn:self.program(7, program7, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \");\n stack1 = helpers['if'].call(depth0, \"commit.authorName\", {hash:{},inverse:self.noop,fn:self.program(9, program9, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \");\n stack1 = helpers['if'].call(depth0, \"commit.committerName\", {hash:{},inverse:self.noop,fn:self.program(11, program11, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n
\\n\\n - \");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.message\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.message\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"
\\n - \");\n foundHelper = helpers.formatMessage;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.commit.message\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatMessage\", \"build.commit.message\", {hash:{},contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"
\\n\\n \");\n stack1 = helpers.unless.call(depth0, \"isMatrix\", {hash:{},inverse:self.noop,fn:self.program(13, program13, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n
\\n\\n \");\n stack1 = helpers['if'].call(depth0, \"build.isMatrix\", {hash:{},inverse:self.program(17, program17, data),fn:self.program(15, program15, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \");\n return buffer;}\nfunction program5(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n
\");\n stack1 = helpers._triageMustache.call(depth0, \"build.number\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program7(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.compare\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.compare\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n
\");\n foundHelper = helpers.pathFrom;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.commit.compareUrl\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"pathFrom\", \"build.commit.compareUrl\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program9(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.author\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.author\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n
\");\n stack1 = helpers._triageMustache.call(depth0, \"build.commit.authorName\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program11(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.committer\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.committer\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n
\");\n stack1 = helpers._triageMustache.call(depth0, \"build.commit.committerName\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program13(depth0,data) {\n \n var buffer = '', stack1, foundHelper;\n data.buffer.push(\"\\n
\");\n foundHelper = helpers['t'];\n stack1 = foundHelper ? foundHelper.call(depth0, \"builds.config\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"t\", \"builds.config\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n
\");\n foundHelper = helpers.formatConfig;\n stack1 = foundHelper ? foundHelper.call(depth0, \"build.config\", {hash:{},contexts:[depth0],data:data}) : helperMissing.call(depth0, \"formatConfig\", \"build.config\", {hash:{},contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program15(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n \");\n stack1 = {};\n stack1['jobsBinding'] = \"build.requiredJobs\";\n stack1['required'] = \"true\";\n stack1 = helpers.view.call(depth0, \"Travis.JobsView\", {hash:stack1,contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n stack1 = {};\n stack1['jobsBinding'] = \"build.allowedFailureJobs\";\n stack1 = helpers.view.call(depth0, \"Travis.JobsView\", {hash:stack1,contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\nfunction program17(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n \");\n stack1 = {};\n stack1['contextBinding'] = \"build.jobs.firstObject\";\n stack1 = helpers.view.call(depth0, \"Travis.LogView\", {hash:stack1,contexts:[depth0],data:data});\n data.buffer.push(escapeExpression(stack1) + \"\\n \");\n return buffer;}\n\n stack1 = helpers['with'].call(depth0, \"view\", {hash:{},inverse:self.noop,fn:self.program(1, program1, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n\\n\");\n return buffer;\n});\n\nEmber.TEMPLATES['jobs/list'] = Ember.Handlebars.template(function anonymous(Handlebars, depth0, helpers, partials, data) { helpers = helpers || Ember.Handlebars.helpers;\n var buffer = '', stack1, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = '', stack1;\n data.buffer.push(\"\\n \");\n stack1 = helpers['if'].call(depth0, \"view.required\", {hash:{},inverse:self.program(4, program4, data),fn:self.program(2, program2, data),contexts:[depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n
\\n \\n \");\n stack1 = helpers.each.call(depth0, \"key\", \"in\", \"view.build.configKeys\", {hash:{},inverse:self.noop,fn:self.program(6, program6, data),contexts:[depth0,depth0,depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n
\\n \\n
\\n \");\n stack1 = helpers.each.call(depth0, \"job\", \"in\", \"view.jobs\", {hash:{},inverse:self.noop,fn:self.program(8, program8, data),contexts:[depth0,depth0,depth0],data:data});\n if(stack1 || stack1 === 0) { data.buffer.push(stack1); }\n data.buffer.push(\"\\n \\n