From 0624ebaf5df089e58b5fe50ac2b472bca328612c Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 4 Jan 2013 17:23:24 -0700 Subject: [PATCH] Set config defaults for a package from its module's `configDefaults` --- spec/app/root-view-spec.coffee | 10 +++++++++- src/app/root-view.coffee | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spec/app/root-view-spec.coffee b/spec/app/root-view-spec.coffee index 0bf78785c..e7660f854 100644 --- a/spec/app/root-view-spec.coffee +++ b/spec/app/root-view-spec.coffee @@ -396,8 +396,9 @@ describe "RootView", -> beforeEach -> packageModule = - deactivate: -> + configDefaults: foo: { bar: 2, baz: 3 } activate: jasmine.createSpy("activate") + deactivate: -> serialize: -> "it worked" describe ".activatePackage(name, packageModule)", -> @@ -414,6 +415,13 @@ describe "RootView", -> expect(packageModule.activate).toHaveBeenCalledWith(newRootView, "it worked") newRootView.remove() + it "loads config defaults based on the `configDefaults` key", -> + expect(config.get('foo.bar')).toBeUndefined() + rootView.activatePackage('package', packageModule) + config.set("package.foo.bar", 1) + expect(config.get('package.foo.bar')).toBe 1 + expect(config.get('package.foo.baz')).toBe 3 + describe ".deactivatePackage(packageName)", -> it "deactivates and removes the package module from the package module map", -> rootView.activatePackage('package', packageModule) diff --git a/src/app/root-view.coffee b/src/app/root-view.coffee index d58f082a2..dd9f9a3b9 100644 --- a/src/app/root-view.coffee +++ b/src/app/root-view.coffee @@ -113,6 +113,7 @@ class RootView extends View when 'Editor' then Editor.deserialize(viewState, this) activatePackage: (name, packageModule) -> + config.setDefaults(name, packageModule.configDefaults) if packageModule.configDefaults? @packageModules[name] = packageModule packageModule.activate(this, @packageStates[name])