lib/picky/index/file/basic.rb in picky-0.11.2 vs lib/picky/index/file/basic.rb in picky-0.12.0

- old
+ new

@@ -1,62 +1,96 @@ module Index + # Handles all aspects of index files, such as dumping/loading. + # module File + # Base class for all index files. + # + # Provides necessary helper methods for its + # subclasses. + # Not directly useable, as it does not provide + # dump/load methods. + # class Basic attr_reader :cache_path + # An index cache takes a path, without file extension, + # which will be provided by the subclasses. + # def initialize cache_path @cache_path = "#{cache_path}.#{extension}" end + # The default extension for index files is "index". + # def extension :index end - # Backup. + # Will copy the index file to a location that + # is in a directory named "backup" right under + # the directory the index file is in. # def backup prepare_backup backup_path FileUtils.cp cache_path, target, verbose: true end + # The backup directory of this file. + # Equal to the file's dirname plus /backup + # + # TODO: Rename to backup_dir. + # def backup_path ::File.join ::File.dirname(cache_path), 'backup' end + # Prepares the backup directory for the file. + # def prepare_backup target FileUtils.mkdir target unless Dir.exists?(target) end - # Restore. + # Copies the file from its backup location back + # to the original location. # def restore FileUtils.cp backup_file_path_of(cache_path), cache_path, verbose: true end + # The backup filename. + # + # TODO: Duplicate work done here? + # def backup_file_path_of path dir, name = ::File.split path ::File.join dir, 'backup', name end - # Delete. + # Deletes the file. # def delete `rm -Rf #{cache_path}` end # Checks. # - # Is the cache small? + # Is this cache file suspiciously small? + # (less than 8 Bytes of size) # def cache_small? size_of(cache_path) < 8 end - # Is the cache ok? I.e. larger than four Bytes in size. + # Is the cache ok? (existing and larger than + # zero Bytes in size) # + # A small cache is still ok. + # def cache_ok? size_of(cache_path) > 0 end + # Extracts the size of the file in Bytes. + # def size_of path `ls -l #{path} | awk '{print $5}'`.to_i end end \ No newline at end of file