From 77e4e41c7b6b3d85f0364d17ab40732729495665 Mon Sep 17 00:00:00 2001 From: Corey Johnson & Kevin Sawicki Date: Wed, 12 Dec 2012 13:58:15 -0800 Subject: [PATCH] Check all path segments for ignored names --- spec/app/project-spec.coffee | 38 ++++++++++++++++++++++++++++++++++++ src/app/project.coffee | 10 ++-------- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/spec/app/project-spec.coffee b/spec/app/project-spec.coffee index 579fc282a..0819649aa 100644 --- a/spec/app/project-spec.coffee +++ b/spec/app/project-spec.coffee @@ -129,6 +129,44 @@ describe "Project", -> expect(paths).not.toContain('a') expect(paths).toContain('b') + describe "ignored file name", -> + ignoredFile = null + + beforeEach -> + ignoredFile = fs.join(require.resolve('fixtures/dir'), 'ignored.txt') + fs.write(ignoredFile, "") + + afterEach -> + fs.remove(ignoredFile) + + it "ignores ignored.txt file", -> + paths = null + project.ignoredNames.push 'ignored.txt' + waitsForPromise -> + project.getFilePaths().done (foundPaths) -> paths = foundPaths + + runs -> + expect(paths).not.toContain('ignored.txt') + + describe "ignored folder name", -> + ignoredFile = null + + beforeEach -> + ignoredFile = fs.join(require.resolve('fixtures/dir'), 'ignored/ignored.txt') + fs.write(ignoredFile, "") + + afterEach -> + fs.remove(ignoredFile) + + it "ignores ignored folder", -> + paths = null + project.ignoredNames.push 'ignored' + waitsForPromise -> + project.getFilePaths().done (foundPaths) -> paths = foundPaths + + runs -> + expect(paths).not.toContain('ignored/ignored.txt') + it "ignores files in gitignore for projects in a git tree", -> project.setHideIgnoredFiles(true) project.setPath(require.resolve('fixtures/git/working-dir')) diff --git a/src/app/project.coffee b/src/app/project.coffee index 8cc207a8c..634b0ecf3 100644 --- a/src/app/project.coffee +++ b/src/app/project.coffee @@ -59,14 +59,8 @@ class Project deferred.promise() isPathIgnored: (path) -> - lastSlash = path.lastIndexOf('/') - if lastSlash isnt -1 - name = path.substring(lastSlash + 1) - else - name = path - - for ignored in @ignoredNames - return true if name is ignored + for segment in path.split("/") + return true if _.contains(@ignoredNames, segment) @ignoreRepositoryPath(path)