Simplify config.core.extensions array

This commit is contained in:
Nathan Sobo
2012-12-14 17:14:58 -08:00
parent b7fd9debd6
commit 64ff05d481

View File

@@ -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