From 4fe021bb612702a264a903dc9e35833ab7f058a6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 28 Jan 2013 15:42:50 -0800 Subject: [PATCH] Memoize built packages Packages that successfully built are now stored internally so they can be quickly accessed on future calls instead of returning an array of newly built packages on each call. --- src/app/atom.coffee | 4 +++- src/packages/snippets/spec/snippets-spec.coffee | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/atom.coffee b/src/app/atom.coffee index 3ceb77cd8..455382926 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -25,7 +25,9 @@ _.extend atom, new LoadTextMatePackagesTask(asyncTextMatePackages).start() getPackages: -> - @getPackageNames().map((name) -> Package.build(name)).filter (pack) -> pack? + @packages ?= @getPackageNames().map((name) -> Package.build(name)) + .filter((pack) -> pack?) + new Array(@packages...) loadTextMatePackages: -> pack.load() for pack in @getTextMatePackages() diff --git a/src/packages/snippets/spec/snippets-spec.coffee b/src/packages/snippets/spec/snippets-spec.coffee index d47e0ea13..1c8ed070f 100644 --- a/src/packages/snippets/spec/snippets-spec.coffee +++ b/src/packages/snippets/spec/snippets-spec.coffee @@ -250,6 +250,7 @@ describe "Snippets extension", -> describe "snippet loading", -> beforeEach -> + atom.packages = null jasmine.unspy(LoadSnippetsTask.prototype, 'start') spyOn(LoadSnippetsTask.prototype, 'loadAtomSnippets').andCallFake -> @snippetsLoaded({}) spyOn(LoadSnippetsTask.prototype, 'loadTextMateSnippets').andCallFake -> @snippetsLoaded({})