This file intends to provide file system-like api support, a la zip/zipfilesystem.
need to implement some more IO functions on RangesIO, like puts, print etc, like AbstractOutputStream from zipfile.
check Dir.mkdir, and File.open, and File.rename, to add in filename length checks (max 32 / 31 or something). do the automatic truncation, and add in any necessary warnings.
File.split(‘a/’) == File.split(‘a’) == [‘.’, ‘a’] the implication of this, is that things that try to force directory don’t work. like, File.rename(‘a’, ‘b’), should work if a is a file or directory, but File.rename(‘a/’, ‘b’) should only work if a is a directory. tricky, need to clean things up a bit more. i think a general path name => dirent method would work, with flags about what should raise an error.
Need to look at streamlining things after getting all the tests passing, as this file’s getting pretty long - almost half the real implementation. and is probably more inefficient than necessary. too many exceptions in the expected path of certain functions.
should look at profiles before and after switching ruby-msg to use the filesystem api.