# frozen_string_literal: true

class Downloads
  FOLDER = Rails.root.join("tmp/downloads")
  TIMEOUT = 10

  def self.wait_for_download
    Timeout.timeout(TIMEOUT) { sleep 0.1 until downloaded? }
  end

  def self.clear
    FileUtils.rm_rf(FOLDER)
  end

  private

  def self.downloaded?
    !downloading? && downloads.any?
  end

  def self.downloading?
    downloads.grep(/\.crdownload$/).any?
  end

  def self.downloads
    Dir[FOLDER.join("*")]
  end

  private_class_method :downloaded?, :downloading?, :downloads
end