diff --git a/spec/app/project-spec.coffee b/spec/app/project-spec.coffee index 5627c81ab..144b697e8 100644 --- a/spec/app/project-spec.coffee +++ b/spec/app/project-spec.coffee @@ -69,5 +69,5 @@ describe "Project", -> describe "when path is null", -> it "sets its path and root directory to null", -> project.setPath(null) - expect(project.getPath()).toBeNull() - expect(project.getRootDirectory()).toBeNull() + expect(project.getPath()?).toBeFalsy() + expect(project.getRootDirectory()?).toBeFalsy() diff --git a/spec/app/root-view-spec.coffee b/spec/app/root-view-spec.coffee index 759b76efd..f3e082d98 100644 --- a/spec/app/root-view-spec.coffee +++ b/spec/app/root-view-spec.coffee @@ -20,7 +20,7 @@ describe "RootView", -> describe "when called with a pathToOpen", -> describe "when pathToOpen references a file", -> it "creates a project for the file's parent directory, then sets the document.title and opens the file in an editor", -> - expect(rootView.project.path).toBe fs.directory(path) + expect(rootView.project.getPath()).toBe fs.directory(path) expect(rootView.editors().length).toBe 1 expect(rootView.editors()[0]).toHaveClass 'active' expect(rootView.activeEditor().buffer.getPath()).toBe path @@ -33,7 +33,7 @@ describe "RootView", -> rootView = new RootView(pathToOpen: path) rootView.focus() - expect(rootView.project.path).toBe path + expect(rootView.project.getPath()).toBe path expect(rootView.editors().length).toBe 0 expect(document.title).toBe path @@ -53,7 +53,7 @@ describe "RootView", -> it "constructs the view with the same panes", -> rootView = RootView.deserialize(viewState) - expect(rootView.project.path).toBeNull() + expect(rootView.project.getPath()?).toBeFalsy() expect(rootView.editors().length).toBe 2 expect(rootView.activeEditor().buffer.getText()).toBe buffer.getText() expect(document.title).toBe 'untitled' @@ -377,9 +377,9 @@ describe "RootView", -> it "creates a project if there isn't one yet and the buffer was previously unsaved", -> rootView = new RootView rootView.open() - expect(rootView.project.path).toBeNull() + expect(rootView.project.getPath()?).toBeFalsy() rootView.activeEditor().buffer.saveAs('/tmp/ignore-me') - expect(rootView.project.path).toBe '/tmp' + expect(rootView.project.getPath()).toBe '/tmp' describe "when editors are focused", -> it "triggers 'active-editor-path-change' events if the path of the active editor actually changes", -> @@ -407,5 +407,5 @@ describe "RootView", -> describe "when the last editor is removed", -> it "updates the title to the project path", -> rootView.editors()[0].remove() - expect(document.title).toBe rootView.project.path + expect(document.title).toBe rootView.project.getPath() diff --git a/spec/extensions/file-finder-spec.coffee b/spec/extensions/file-finder-spec.coffee index de2a44ba4..aed9fd7db 100644 --- a/spec/extensions/file-finder-spec.coffee +++ b/spec/extensions/file-finder-spec.coffee @@ -43,7 +43,7 @@ describe 'FileFinder', -> describe "when root view's project has no path", -> beforeEach -> - rootView.project.path = undefined + rootView.project.setPath(null) it "does not open the FileFinder", -> expect(rootView.find('.file-finder')).not.toExist() diff --git a/spec/extensions/tree-view-spec.coffee b/spec/extensions/tree-view-spec.coffee index fc9595ab8..9dc33a35f 100644 --- a/spec/extensions/tree-view-spec.coffee +++ b/spec/extensions/tree-view-spec.coffee @@ -43,7 +43,7 @@ describe "TreeView", -> expect(rootEntries.find('> .file:contains(sample.js)')).toExist() expect(rootEntries.find('> .file:contains(sample.txt)')).toExist() - describe "when the project has not path", -> + describe "when the project has no path", -> beforeEach -> treeView.deactivate() diff --git a/src/app/project.coffee b/src/app/project.coffee index e4aa71866..0ada35dd4 100644 --- a/src/app/project.coffee +++ b/src/app/project.coffee @@ -6,7 +6,6 @@ Directory = require 'directory' module.exports = class Project - path: null rootDirectory: null buffers: null @@ -15,16 +14,15 @@ class Project @buffers = [] getPath: -> - @path + @rootDirectory?.path setPath: (path) -> - @rootDirectory.off() if @rootDirectory + @rootDirectory?.off() if path? - @path = if fs.isDirectory(path) then path else fs.directory(path) - @rootDirectory = new Directory(@path) + directory = if fs.isDirectory(path) then path else fs.directory(path) + @rootDirectory = new Directory(directory) else - @path = null @rootDirectory = null @trigger "path-change" @@ -33,8 +31,7 @@ class Project @rootDirectory getFilePaths: -> - projectPath = @path - fs.async.listTree(@path).pipe (paths) => + fs.async.listTree(@getPath()).pipe (paths) => @relativize(path) for path in paths when fs.isFile(path) open: (filePath) -> @@ -51,11 +48,11 @@ class Project buffer resolve: (filePath) -> - filePath = fs.join(@path, filePath) unless filePath[0] == '/' + filePath = fs.join(@getPath(), filePath) unless filePath[0] == '/' fs.absolute filePath relativize: (fullPath) -> - fullPath.replace(@path, "").replace(/^\//, '') + fullPath.replace(@getPath(), "").replace(/^\//, '') bufferWithId: (id) -> return buffer for buffer in @buffers when buffer.id == id diff --git a/src/app/root-view.coffee b/src/app/root-view.coffee index a2a596cb5..f151cda22 100644 --- a/src/app/root-view.coffee +++ b/src/app/root-view.coffee @@ -39,11 +39,10 @@ class RootView extends View @setTitle() @project = new Project(pathToOpen) - if pathToOpen? and fs.isFile(pathToOpen) - @open(pathToOpen) + @open(pathToOpen) if fs.isFile(pathToOpen) serialize: -> - projectPath: @project?.path + projectPath: @project?.getPath() panesViewState: @panes.children().view()?.serialize() extensionStates: @serializeExtensions() @@ -57,7 +56,7 @@ class RootView extends View @setTitle(@project?.getPath()) @on 'active-editor-path-change', (e, path) => - @project.setPath(path) unless @project.getPath() + @project.setPath(path) unless @project.getRootDirectory() @setTitle(path) afterAttach: (onDom) -> diff --git a/src/extensions/file-finder.coffee b/src/extensions/file-finder.coffee index 664879256..00e7c758c 100644 --- a/src/extensions/file-finder.coffee +++ b/src/extensions/file-finder.coffee @@ -33,7 +33,7 @@ class FileFinder extends View if @hasParent() @detach() else - @attach() if @rootView.project.path? + @attach() if @rootView.project.getPath()? attach: -> @rootView.project.getFilePaths().done (@paths) => @populatePathList()