Sha256: d1b6fe6b585cd5b85bd516225b2d058dcdbc3253a75511e6ec530b5b726bb648

Contents?: true

Size: 801 Bytes

Versions: 3

Compression:

Stored size: 801 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) if @files_to_keep.exclude?(file) && File.exist?(file)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
easy_ml-0.1.4 lib/easy_ml/support/file_rotate.rb
easy_ml-0.1.3 lib/easy_ml/support/file_rotate.rb
easy_ml-0.1.2 lib/easy_ml/support/file_rotate.rb