From 6efe533650df9b75a62c402165d0bc0182286fe0 Mon Sep 17 00:00:00 2001 From: Corey Johnson & Nathan Sobo Date: Mon, 7 Jan 2013 14:25:56 -0700 Subject: [PATCH] Add `atom.getPackages` so we can access package objects anywhere --- spec/spec-helper.coffee | 2 +- src/app/atom.coffee | 30 ++++++++++++++++++------------ src/app/package.coffee | 8 +++----- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index c7dc053ca..f6a4df0eb 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -17,7 +17,7 @@ require.paths.unshift(require.resolve('fixtures/packages')) [bindingSetsToRestore, bindingSetsByFirstKeystrokeToRestore] = [] # Load TextMate bundles, which specs rely on (but not other packages) -atom.loadPackages(atom.getAvailableTextMateBundles()) +atom.loadTextMatePackages() beforeEach -> window.fixturesProject = new Project(require.resolve('fixtures')) diff --git a/src/app/atom.coffee b/src/app/atom.coffee index a90b675b3..96594961e 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -12,7 +12,23 @@ _.extend atom, pendingBrowserProcessCallbacks: {} - getAvailablePackages: -> + loadPackages: -> + pack.load() for pack in @getPackages() + + getPackages: -> + @getPackageNames().map (name) -> Package.build(name) + + loadTextMatePackages: -> + pack.load() for pack in @getTextMatePackages() + + getTextMatePackages: -> + @getPackages().filter (pack) -> pack instanceof TextMatePackage + + loadPackage: (name) -> + Package.build(name).load() + + getPackageNames: -> + disabledPackages = config.get("core.disabledPackages") ? [] allPackageNames = [] for packageDirPath in config.packageDirPaths packageNames = fs.list(packageDirPath) @@ -20,17 +36,7 @@ _.extend atom, .map((packagePath) -> fs.base(packagePath)) allPackageNames.push(packageNames...) _.unique(allPackageNames) - - getAvailableTextMateBundles: -> - @getAvailablePackages().filter (packageName) => TextMatePackage.testName(packageName) - - loadPackages: (packageNames=@getAvailablePackages()) -> - disabledPackages = config.get("core.disabledPackages") ? [] - for packageName in packageNames - @loadPackage(packageName) unless _.contains(disabledPackages, packageName) - - loadPackage: (name) -> - Package.load(name) + .filter (name) -> not _.contains(disabledPackages, name) loadThemes: -> themeNames = config.get("core.themes") ? ['IR_Black'] diff --git a/src/app/package.coffee b/src/app/package.coffee index 49d6445ac..1f1cb6c68 100644 --- a/src/app/package.coffee +++ b/src/app/package.coffee @@ -2,15 +2,13 @@ fs = require 'fs' module.exports = class Package - @load: (name) -> + @build: (name) -> AtomPackage = require 'atom-package' TextMatePackage = require 'text-mate-package' - if TextMatePackage.testName(name) - new TextMatePackage(name).load() + new TextMatePackage(name) else - new AtomPackage(name).load() - + new AtomPackage(name) name: null path: null