Add Project::observeBuffers

This commit is contained in:
Ben Ogle 2014-09-09 14:13:26 -07:00
parent 4070e5fb25
commit b6fe72ef9e
3 changed files with 19 additions and 9 deletions

View File

@ -479,7 +479,7 @@ describe "Project", ->
runs ->
expect(results).toHaveLength 0
describe ".eachBuffer(callback)", ->
describe ".observeBuffers(callback)", ->
beforeEach ->
atom.project.bufferForPathSync('a')
@ -490,7 +490,7 @@ describe "Project", ->
callback = (buffer) ->
callbackBuffer = buffer
count++
atom.project.eachBuffer(callback)
atom.project.observeBuffers(callback)
expect(count).toBe 1
expect(callbackBuffer).toBe atom.project.getBuffers()[0]
@ -501,7 +501,7 @@ describe "Project", ->
callbackBuffer = buffer
count++
atom.project.eachBuffer(callback)
atom.project.observeBuffers(callback)
count = 0
callbackBuffer = null
atom.project.bufferForPathSync(require.resolve('./fixtures/sample.txt'))

View File

@ -86,7 +86,7 @@ class Git
@refreshStatus()
if @project?
@subscribe @project.eachBuffer (buffer) => @subscribeToBuffer(buffer)
@subscribe @project.observeBuffers (buffer) => @subscribeToBuffer(buffer)
# Subscribes to buffer events.
subscribeToBuffer: (buffer) ->

View File

@ -67,6 +67,15 @@ class Project extends Model
onDidChangePath: (callback) ->
@emitter.on 'did-change-path', callback
# Extended: Immediately invoke the given callback for all existing buffers.
# Then invoke the given callback when a new buffer has been created. For
# example, when {::open} is called, this is fired.
#
# * `callback` {Function}
# * `buffer` {TextBuffer} the new buffer
observeBuffers: (callback) ->
callback(buffer) for buffer in @getBuffers()
@onDidCreateBuffer(callback)
# Extended: Invoke the given callback when a new buffer has been created. For
# example, when {::open} is called, this is fired.
@ -363,11 +372,12 @@ class Project extends Model
subscriber = args.shift() if args.length > 1
callback = args.shift()
callback(buffer) for buffer in @getBuffers()
if subscriber
subscriber.subscribe this, 'buffer-created', (buffer) -> callback(buffer)
else
@on 'buffer-created', (buffer) -> callback(buffer)
message = 'Use Project::observeBuffers instead'
message += '; Project::observeBuffers no longer accepts a subscriber parameter. Call `subscriber.subscribe(atom.project.observeBuffers(cb))`' if subscriber?
disposable = observeBuffers(callback)
subscriber.subscribe(disposable) if subscriber?
disposable
# Deprecated: delegate
registerOpener: (opener) ->