From 64ff05d48181ccd6fdf00ea22eb52ce5bd2094d3 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 14 Dec 2012 17:14:58 -0800 Subject: [PATCH] Simplify `config.core.extensions` array --- src/app/config.coffee | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/app/config.coffee b/src/app/config.coffee index 7703d5614..6abd149de 100644 --- a/src/app/config.coffee +++ b/src/app/config.coffee @@ -27,17 +27,22 @@ class Config _.defaults(@editor, require('editor').configDefaults) registerNewExtensions: -> - registeredExtensions = _.pluck(@core.extensions, 'name') shouldUpdate = false - for extensionName in _.unique(@listExtensionNames()) - unless _.contains(registeredExtensions, extensionName) - @core.extensions.push(name: extensionName, enabled: true) - shouldUpdate = true + for extensionName in @getAvailableExtensions() + @core.extensions.push(extensionName) unless @isExtensionRegistered(extensionName) + shouldUpdate = true @update() if shouldUpdate - listExtensionNames: -> - fs.list(bundledExtensionsDirPath).concat(fs.list(userExtensionsDirPath)).map (path) -> - fs.base(path) + isExtensionRegistered: (extensionName) -> + return true if _.contains(@core.extensions, extensionName) + return true if _.contains(@core.extensions, "!#{extensionName}") + false + + getAvailableExtensions: -> + availableExtensions = + fs.list(bundledExtensionsDirPath) + .concat(fs.list(userExtensionsDirPath)).map (path) -> fs.base(path) + _.unique(availableExtensions) update: (keyPathString, value) -> @setValueAtKeyPath(keyPathString.split('.'), value) if keyPathString