diff --git a/spec/view-registry-spec.coffee b/spec/view-registry-spec.coffee index f36975dfe..87933a241 100644 --- a/spec/view-registry-spec.coffee +++ b/spec/view-registry-spec.coffee @@ -25,28 +25,29 @@ describe "ViewRegistry", -> describe "when passed a model object", -> describe "when a view provider is registered matching the object's constructor", -> - it "constructs a view element and assigns the model on it", -> - class TestModel + describe "when the provider has a viewConstructor property", -> + it "constructs a view element and assigns the model on it", -> + class TestModel - class TestModelSubclass extends TestModel + class TestModelSubclass extends TestModel - class TestView - setModel: (@model) -> + class TestView + setModel: (@model) -> - model = new TestModel + model = new TestModel - registry.addViewProvider - modelClass: TestModel - viewClass: TestView + registry.addViewProvider + modelConstructor: TestModel + viewConstructor: TestView - view = registry.getView(model) - expect(view instanceof TestView).toBe true - expect(view.model).toBe model + view = registry.getView(model) + expect(view instanceof TestView).toBe true + expect(view.model).toBe model - subclassModel = new TestModelSubclass - view2 = registry.getView(subclassModel) - expect(view2 instanceof TestView).toBe true - expect(view2.model).toBe subclassModel + subclassModel = new TestModelSubclass + view2 = registry.getView(subclassModel) + expect(view2 instanceof TestView).toBe true + expect(view2.model).toBe subclassModel describe "when no view provider is registered for the object's constructor", -> describe "when the object has a .getViewClass() method", -> @@ -75,13 +76,13 @@ describe "ViewRegistry", -> expect(-> registry.getView(new Object)).toThrow() describe "::addViewProvider(providerSpec)", -> - it "returns a disposable that can be used to removed the provider", -> + it "returns a disposable that can be used to remove the provider", -> class TestModel class TestView setModel: (@model) -> disposable = registry.addViewProvider - modelClass: TestModel - viewClass: TestView + modelConstructor: TestModel + viewConstructor: TestView expect(registry.getView(new TestModel) instanceof TestView).toBe true disposable.dispose() diff --git a/src/view-registry.coffee b/src/view-registry.coffee index 3259eeacf..a3598791d 100644 --- a/src/view-registry.coffee +++ b/src/view-registry.coffee @@ -29,15 +29,15 @@ class ViewRegistry object[0].__spacePenView ?= object object[0] else if provider = @findProvider(object) - element = new provider.viewClass + element = new provider.viewConstructor element.setModel(object) element - else if viewClass = object?.getViewClass?() - view = new viewClass(object) + else if viewConstructor = object?.getViewClass?() + view = new viewConstructor(object) view[0].__spacePenView ?= view view[0] else throw new Error("Can't create a view for #{object.constructor.name} instance. Please register a view provider.") findProvider: (object) -> - @providers.find ({modelClass}) -> object instanceof modelClass + @providers.find ({modelConstructor}) -> object instanceof modelConstructor