
Specs needed to be updated to handle new way of receiving methods. What's more they revealed a subtle bug that was present after changing merge function to fetch record if it's not present. After calling merge, store calls method to update associations. This may be not possible if clientId for new record is not correctly set.
41 lines
1.1 KiB
CoffeeScript
41 lines
1.1 KiB
CoffeeScript
require 'travis/model'
|
|
|
|
@Travis.Worker = Travis.Model.extend
|
|
state: DS.attr('string')
|
|
name: DS.attr('string')
|
|
host: DS.attr('string')
|
|
lastSeenAt: DS.attr('string')
|
|
|
|
payload: (->
|
|
@get('data.payload')
|
|
).property('data.payload')
|
|
|
|
number: (->
|
|
@get('name').match(/\d+$/)[0]
|
|
).property('name')
|
|
|
|
display: (->
|
|
name = @get('name')
|
|
state = @get('state')
|
|
payload = @get('payload')
|
|
if name
|
|
name = name.replace('travis-', '')
|
|
if state == 'working' && payload != undefined
|
|
repo = if payload.repository then $.truncate(payload.repository.slug, 18) else undefined
|
|
number = if payload.build and payload.build.number then ' #' + payload.build.number else ''
|
|
state = if repo then repo + number else state
|
|
name + ': ' + state
|
|
).property('state', 'name', 'payload')
|
|
|
|
urlJob: (->
|
|
"/#{@get('repository')}/jobs/#{@get('job_id')}" if @get('state') == 'working'
|
|
).property('repository', 'job_id', 'state')
|
|
|
|
repository: (->
|
|
@get('payload.repository.slug')
|
|
).property('payload.repository.slug')
|
|
|
|
job_id: (->
|
|
@get('payload.job.id')
|
|
).property('payload.job.id')
|