On Sun, 06 Mar 2011 08:37:15 -0000, Rainer Schuetze <r.sagita...@gmx.de> wrote:

Looks good overall. I have a few comments and nitpicks though:

 >   basename("dir/subdir/")             -->  "subdir"
 >   directory("dir/subdir/")      -->  "dir"

Is this what everybody expects? I'm not sure, but another possibility would be to treat these as if "dir/subdir/." is passed. What is the result of directory("/") or directory("d:/")?

?? I would expect:

  directory("dir/subdir/")      -->  "dir/subdir"

as subdir _is_ a dir, not a file, as shown by the trailing slash. If it was:

  directory("dir/subdir")      -->  "dir"

as subdir is perhaps not a directory, as there is no trailing slash.

I realise this means the trailing slash becomes important, but it kinda is important as it does tell us when something is definitely a directory.

Alternately, we could ignore the distinction between file and directory - as we're essentially just parsing strings here - and have two functions:

lastComponent("dir/subdir/")  -> "subdir"
lastComponent("dir/subdir")   -> "subdir"

allButLastComponent("dir/subdir/") -> "dir/"
allButLastComponent("dir/subdir")  -> "dir/"


--
Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to