mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Return disposable from ViewRegistry::addViewProvider
This commit is contained in:
@@ -73,3 +73,16 @@ describe "ViewRegistry", ->
|
||||
describe "when the object has no .getViewClass() method", ->
|
||||
it "throws an exception", ->
|
||||
expect(-> registry.getView(new Object)).toThrow()
|
||||
|
||||
describe "::addViewProvider(providerSpec)", ->
|
||||
it "returns a disposable that can be used to removed the provider", ->
|
||||
class TestModel
|
||||
class TestView
|
||||
setModel: (@model) ->
|
||||
disposable = registry.addViewProvider
|
||||
modelClass: TestModel
|
||||
viewClass: TestView
|
||||
|
||||
expect(registry.getView(new TestModel) instanceof TestView).toBe true
|
||||
disposable.dispose()
|
||||
expect(-> registry.getView(new TestModel)).toThrow()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{Disposable} = require 'event-kit'
|
||||
{jQuery} = require './space-pen-extensions'
|
||||
|
||||
module.exports =
|
||||
@@ -6,8 +7,10 @@ class ViewRegistry
|
||||
@views = new WeakMap
|
||||
@providers = []
|
||||
|
||||
addViewProvider: (provider) ->
|
||||
@providers.push(provider)
|
||||
addViewProvider: (providerSpec) ->
|
||||
@providers.push(providerSpec)
|
||||
new Disposable =>
|
||||
@providers = @providers.filter (provider) -> provider isnt providerSpec
|
||||
|
||||
getView: (object) ->
|
||||
return unless object?
|
||||
|
||||
Reference in New Issue
Block a user