Sha256: b0118ac27fb063b112281e6c3ffe82b6f9c4d2b0f5fd76d934b63e3b8b765957

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

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

    @total_scrubbed = 0

    ActiveRecord::Base.descendants.sort_by{|d| d.to_s }.each do |ar_class|
      next unless ar_class.scrubbable?

      scrubbed_count = 0
      ar_class.find_in_batches do |batch|
        batch.each do |obj|
          obj.scrub!
          scrubbed_count += 1
        end
      end
      @logger.info "Scrubbed #{scrubbed_count} #{ar_class} objects".green
      @total_scrubbed += scrubbed_count
    end

    ActsAsScrubbable.execute_after_hook

    @logger.info "#{@total_scrubbed} scrubbed objects".blue
    @logger.info "Scrub Complete!".white
  end
end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
acts_as_scrubbable-0.0.3 lib/acts_as_scrubbable/tasks.rb