manheim/backupsss

View on GitHub
lib/backupsss/backup_dir.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'backupsss/removal_error'

module Backupsss
  # A class for listing and sorting files by mtime
  class BackupDir
    def initialize(opts = {})
      @dir = opts[:dir]
    end

    def ls
      Dir.entries(@dir).reject { |f| (f == '..' || f == '.') }
    end

    def ls_t
      ls.sort_by { |f| File.mtime("#{@dir}/#{f}") }
    end

    def ls_rt
      ls_t.reverse
    end

    def rm(file)
      FileUtils.rm(File.join(@dir, file))
      file
    rescue SystemCallError => e
      raise RemovalError, e
    end
  end
end