What is the best idiom for generating a cross-platform basename?
(i.e., one that will still give the basename of a windows file on
linux and the basename of a linux file on windows).

filenames = ["C:\\path\\to\\file.txt", "/path/to/file.txt"]
filenames.all? {|fn|   <some_xpltfrm_basename_idiom>(fn) ==
"file.txt" }    #  should be true

As I play around with this, it seems that on windows (ruby 1.8.7
(2010-01-10 patchlevel 249) [i386-mingw32]), File.basename will
generate the basename on either of the above examples, but on linux
(ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]) the windows
basename is not found.  Based on this, I think this may be a fool-
proof cross-platform idiom for generating the basename:

File.basename( filename.gsub("\\","/") )

This works on windows and linux, at least the versions I'm running.

Any other/better ideas?  Are there any gotchas with the one I'm using
above?