Sha256: 0fce93de9e190b0295fbfeb8a9b3cf716e61004740457f1f3165fcfa0f5bee78

Contents?: true

Size: 784 Bytes

Versions: 1

Compression:

Stored size: 784 Bytes

Contents

module EasyML
  class FileRotate
    def initialize(directory, files_to_keep)
      @directory = directory
      @files_to_keep = files_to_keep
    end

    def cleanup(allowed_endings = %w[json])
      return unless @directory.present?

      allowed_patterns = allowed_endings.map { |ending| File.join(@directory, "**", "*#{ending}") }
      files_to_check = allowed_patterns.empty? ? Dir.glob(File.join(@directory, "**/*")) : Dir.glob(allowed_patterns)
      # Filter out directories
      files_to_check = files_to_check.select { |file| File.file?(file) }

      files_to_check.each do |file|
        FileUtils.chown_R(`whoami`.chomp, "staff", file)
        FileUtils.chmod_R(0o777, file)
        File.delete(file) unless @files_to_keep.include?(file)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
easy_ml-0.1.1 lib/easy_ml/support/file_rotate.rb