Project.getFilePaths returns full urls.

FileFinder.initialize takes a 'selected' callback.
This commit is contained in:
Corey Johnson
2012-01-04 15:26:27 -08:00
parent 9419a9ec86
commit 3ffe57f228
6 changed files with 12 additions and 19 deletions

View File

@@ -59,11 +59,15 @@ describe 'FileFinder', ->
expect(finder.find('li:last')).toHaveClass "selected"
describe "select", ->
it "when an file is selected atom.open is called", ->
spyOn(atom, 'open')
selectedCallback = jasmine.createSpy 'selected'
beforeEach ->
finder = FileFinder.build {urls, selected: selectedCallback}
it "when a file is selected Editor.open is called", ->
finder.moveDown()
finder.select()
expect(atom.open).toHaveBeenCalledWith(urls[1])
expect(selectedCallback).toHaveBeenCalledWith(urls[1])
it "when no file is selected, does nothing", ->
spyOn(atom, 'open')

View File

@@ -8,8 +8,7 @@ describe "Project", ->
describe ".getFilePaths()", ->
it "returns a promise which resolves to a list of all file urls in the project, recursively", ->
expectedPaths = for url in fs.list(project.url, true) when fs.isFile url
url.replace project.url, ''
expectedPaths = (url for url in fs.list(project.url, true) when fs.isFile url)
waitsForPromise ->
project.getFilePaths().done (result) ->

View File

@@ -55,14 +55,6 @@ describe "RootView", ->
runs ->
expect(rootView.fileFinder.urlList.children('li').length).toBe 3
it "removes common path prefix from files", ->
waitsForPromise ->
rootView.toggleFileFinder()
runs ->
commonPathPattern = new RegExp("^" + fs.directory(url))
expect(rootView.fileFinder.urlList.children('li:first').text()).not.toMatch commonPathPattern
describe "when there is no project", ->
beforeEach ->
rootView = RootView.build()

View File

@@ -14,7 +14,7 @@ class FileFinder extends Template
urls: null
maxResults: null
initialize: ({@urls}) ->
initialize: ({@urls, @selected}) ->
@maxResults = 10
@populateUrlList()
@@ -34,8 +34,7 @@ class FileFinder extends Template
select: ->
filePath = @findSelectedLi().text()
atom.open filePath if filePath
@selected(filePath) if filePath and @selected
moveUp: ->
@findSelectedLi()

View File

@@ -8,6 +8,5 @@ class Project
getFilePaths: ->
projectUrl = @url
fs.async.list(@url, true).pipe (urls) ->
urls = (url.replace(projectUrl, "") for url in urls when fs.isFile(url))
urls
url for url in urls when fs.isFile(url)

View File

@@ -43,6 +43,6 @@ class RootView extends Template
@fileFinder = null
else
@project.getFilePaths().done (urls) =>
@fileFinder = FileFinder.build({urls})
@fileFinder = FileFinder.build({urls, selected: (url) => @editor.open(url)})
@addPane(@fileFinder)
@fileFinder.input.focus()