Class: ActsAsScrubbable::ArClassProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/acts_as_scrubbable/ar_class_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ar_class) ⇒ ArClassProcessor

Returns a new instance of ArClassProcessor.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/acts_as_scrubbable/ar_class_processor.rb', line 10

def initialize(ar_class)
  @ar_class = ar_class

  if ActsAsScrubbable.use_upsert
    ActsAsScrubbable.logger.info Term::ANSIColor.white("Using Upsert")
    @query_processor = ImportProcessor.new(ar_class)
  else
    ActsAsScrubbable.logger.info Term::ANSIColor.white("Using Update")
    @query_processor = UpdateProcessor.new(ar_class)
  end
end

Instance Attribute Details

#ar_classObject (readonly)

Returns the value of attribute ar_class.



8
9
10
# File 'lib/acts_as_scrubbable/ar_class_processor.rb', line 8

def ar_class
  @ar_class
end

#query_processorObject (readonly)

Returns the value of attribute query_processor.



8
9
10
# File 'lib/acts_as_scrubbable/ar_class_processor.rb', line 8

def query_processor
  @query_processor
end

Instance Method Details

#process(num_of_batches) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/acts_as_scrubbable/ar_class_processor.rb', line 22

def process(num_of_batches)
  ActsAsScrubbable.logger.info Term::ANSIColor.green("Scrubbing #{ar_class} ...")

  num_of_batches = Integer(ENV.fetch("SCRUB_BATCHES", "256")) if num_of_batches.nil?
  scrubbed_count = ActsAsScrubbable::ParallelTableScrubber.new(ar_class, num_of_batches).each_query do |query|
    query_processor.scrub_query(query)
  end

  ActsAsScrubbable.logger.info Term::ANSIColor.blue("#{scrubbed_count} #{ar_class} objects scrubbed")
  ActiveRecord::Base.connection.verify!

  ActsAsScrubbable.logger.info Term::ANSIColor.white("Scrub Complete!")
end