Add ChunkBuffer to log

This commit is contained in:
Piotr Sarnacki 2013-03-13 00:13:51 +01:00
parent ab97ca0e78
commit 2eab278736
3 changed files with 18 additions and 12 deletions

View File

@ -1,4 +1,5 @@
require 'travis/model'
require 'travis/chunk_buffer'
@Travis.Log = Em.Object.extend
version: 0 # used to refresh log on requeue
@ -6,9 +7,13 @@ require 'travis/model'
length: 0
init: ->
@set('parts', Ember.ArrayProxy.create(content: []))
@setParts()
@fetch()
setParts: ->
#@set 'parts', Ember.ArrayProxy.create(content: [])
@set 'parts', Travis.ChunkBuffer.create(content: [])
fetch: ->
console.log 'log model: fetching log' if Log.DEBUG
handlers =
@ -17,7 +22,7 @@ require 'travis/model'
Travis.Log.Request.create(id: id, handlers: handlers).run() if id = @get('job.id')
clear: ->
@set('parts', Ember.ArrayProxy.create(content: []))
@setParts()
@incrementProperty('version')
append: (part) ->
@ -31,7 +36,7 @@ require 'travis/model'
loadText: (text) ->
console.log 'log model: load text' if Log.DEBUG
number = -1
@append(number: 0, content: text)
@append(number: 1, content: text)
@set('isLoaded', true)
Travis.Log.Request = Em.Object.extend

View File

@ -34,15 +34,19 @@ Travis.UnorderedLogEngineMixin = Ember.Mixin.create
@scroll.set(number) if !@get('isDestroyed') && number = @get('controller.lineNumber')
).observes('controller.lineNumber')
limited: (->
@limit && @limit.limited
).property()
Travis.OrderedLogEngineMixin = Ember.Mixin.create
setupEngine: ->
@set('logManager', Travis.OrderedLog.create(target: this))
@get('logManager').append @get('log.parts').map( (part) -> Ember.get(part, 'content') )
@get('logManager').append @get('log.parts')
@get('log.parts').addArrayObserver this,
didChange: 'partsDidChange'
willChange: 'partsWillChange'
willChange: 'noop'
destroyEngine: (view) ->
@get('logManager').destroy()
@ -51,7 +55,7 @@ Travis.OrderedLogEngineMixin = Ember.Mixin.create
willChange: 'noop'
partsDidChange: (parts, index, removedCount, addedCount) ->
addedParts = parts.slice(index, index + addedCount).map( (part) -> Ember.get(part, 'content') )
addedParts = parts.slice(index, index + addedCount)
@get('logManager').append addedParts
lineNumberDidChange: (->
@ -189,9 +193,6 @@ Travis.reopen
@rerender() if @get('inDOM')
).observes('log')
#limited: (->
# @limit && @limit.limited
#).property()
plainTextLogUrl: (->
Travis.Urls.plainTextLog(id) if id = @get('log.job.id')

View File

@ -32,18 +32,18 @@ Travis.ChunkBuffer = Em.ArrayProxy.extend
@get('content').replace(idx, amt, objects)
queue: (->
Em.ArrayProxy.create(Em.SortableMixin,
Em.ArrayProxy.extend(Em.SortableMixin, {
content: []
sortProperties: ['number']
sortAscending: true
)
}).create()
).property()
contentArrayDidChange: (array, index, removedCount, addedCount) ->
@_super.apply this, arguments
if addedCount
queue = @get('queue.content')
queue = @get('queue')
addedObjects = array.slice(index, index + addedCount)
console.log 'Added log parts with numbers:', addedObjects.map( (element) -> get(element, 'number') )+'', 'current', @get('next')
queue.pushObjects addedObjects