require 'rake'

namespace :scrub do

  desc "scrub all"
  task all: :environment do

    require 'highline/import'
    require 'term/ansicolor'
    require 'logger'

    @logger = Logger.new($stdout)

    answer = ask("Type SCRUB to continue.".red)
    unless answer == "SCRUB"
      puts "exiting ...".red
      exit
    end

    @logger.warn "Scrubbing classes".red

    Rails.application.eager_load! # make sure all the classes are loaded
    ActiveRecord::Base.descendants.sort_by{|d| d.to_s }.each do |ar_class|
      next unless ar_class.scrubbable?

      @logger.info "Scrubbing #{ar_class}".green

      ar_class.find_in_batches do |batch|
        batch.each do |obj|
          obj.scrub!
        end
      end

    end
    @logger.info "Scrub Complete!".white
  end
end

desc "Links to scrub:all"
task :scrub => ['scrub:all']