# desc “Explaining what the task does” # task :mastiff do # # Task goes here # end require “highline/import”

namespace :mastiff do

desc "Clears cached inbox and removes local attachment storage artifacts"
task :reset => :environment do
  Mastiff.attachment_uploader.flush
  Mastiff::Email::Message.processing.clear
  Mastiff::Email::Message.pending_attachments.clear
  Mastiff::Email::Message.emails.clear
  Mastiff::Email::Message.raw.clear
  Mastiff::Email::Message.uid_validity.delete
  Sidekiq::RetrySet.new.clear
  #message::pending_attachments

end

desc "Uninstalls Gem Generated files"
task :uninstall  do
  install_files = [
    "config/initializers/mastiff.rb",
    "config/sidekiq.yml",
    "app/controllers/emails_controller.rb",
    "app/views/emails/index.html.erb",
    "app/assets/javascripts/emails.js.coffee",
    "app/assets/stylesheets/emails.css.scss",
    "app/workers/sync_mail_worker.rb",
    "app/workers/sync_attachment_worker.rb",
    "app/workers/process_attachment_worker.rb",
    "app/uploaders/mail_attachment_uploader.rb",
  ]
  install_files.each do |fpath|
    File.delete(fpath) if File.exist?(fpath)
  end
end

desc "Create paths for attachment storage"
task :init_paths, [:attachment_path]   do  |t, args|
    p = args[:attachment_path]
    answer = ask("Attachment Path (Enter for Default) ") { |q|
      q.default   = "#{p}"
      #q.validate  = /^(left|right)$/i
    }
    mkpath(answer, verbose: true)

end

end