# File lib/ole/storage/file_system.rb, line 349 def rmdir path dirent = dirent_from_path path raise Errno::ENOTEMPTY, path unless dirent.children.empty? # now delete it, how to do that? the canonical representation that is # maintained is the root tree, and the children array. we must remove it # from the children array. # we need the parent then. this sucks but anyway: # we need to split the path. but before we can do that, we need # to expand it first. eg. say we need the parent to unlink # a/b/../c. the parent should be a, not a/b/.., or a/b. parent_path, basename = File.split @ole.file.expand_path(path) # this shouldn't be able to fail if the above didn't parent = dirent_from_path parent_path # note that the way this currently works, on save and repack time this will get # reflected. to work properly, ie to make a difference now it would have to re-write # the dirent. i think that Ole::Storage#close will handle that. and maybe include a # #repack. parent.children.delete dirent 0 # hmmm. as per ::Dir ? end