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