62 lines
1.5 KiB
CoffeeScript
62 lines
1.5 KiB
CoffeeScript
require 'travis/model'
|
|
|
|
@Travis.Worker = Travis.Model.extend
|
|
state: Ember.attr('string')
|
|
name: Ember.attr('string')
|
|
host: Ember.attr('string')
|
|
payload: Ember.attr('object')
|
|
|
|
number: (->
|
|
@get('name').match(/\d+$/)[0]
|
|
).property('name')
|
|
|
|
isWorking: (->
|
|
@get('state') == 'working'
|
|
).property('state')
|
|
|
|
jobId: (->
|
|
@get('payload.build.id') || @get('payload.job.id')
|
|
).property('payload.job.id', 'payload.build.id')
|
|
|
|
job: (->
|
|
Travis.Job.find @get('job_id')
|
|
).property('jobId')
|
|
|
|
jobNumber: (->
|
|
@get('payload.job.number')
|
|
).property('jobNumber')
|
|
|
|
repo: (->
|
|
id = @get('payload.repository.id') || @get('payload.repo.id')
|
|
slug = @get('repoSlug')
|
|
|
|
@get('store').loadIncomplete(Travis.Repo, {
|
|
id: id,
|
|
slug: slug
|
|
}, { skipIfExists: true })
|
|
|
|
Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id'))
|
|
).property('payload.repository.id', 'payload.repo.id')
|
|
|
|
repoSlug: (->
|
|
@get('payload.repo.slug') || @get('payload.repository.slug')
|
|
).property('payload.repo.slug', 'payload.repository.slug')
|
|
|
|
repoId: (->
|
|
@get('payload.repo.id') || @get('payload.repository.id')
|
|
).property('payload.repo.id', 'payload.repository.id')
|
|
|
|
nameForSort: (->
|
|
if name = @get('name')
|
|
match = name.match /(.*?)-(\d+)/
|
|
if match
|
|
name = match[1]
|
|
id = match[2].toString()
|
|
if id.length < 2
|
|
id = "00#{id}"
|
|
else if id.length < 3
|
|
id = "0#{id}"
|
|
|
|
"#{name}-#{id}"
|
|
).property('name')
|