acts_as_scrubbable 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b879327a376524d60458ad12c6a7688b5d85baf
4
- data.tar.gz: 52411d6ea51c0a3f4484ef09c96195cea42bae9f
3
+ metadata.gz: 99b9db00af3123a92e810a3a8f11b17892b6fb98
4
+ data.tar.gz: d1df98fd8b092fe05df842a0702a3d094db6807d
5
5
  SHA512:
6
- metadata.gz: bb3958c928fc147ab33945e5e045db624715e584c72d15eb4b86718b9da3613730c0389ec17b567b24a7fcb0b200849cd1b7e4cfe923143bc508d2d4f88fe5db
7
- data.tar.gz: e49d143b35922305445915b2bc88138399cdb10e6670ee801fd3b2e4d2f3824332cefcf1e6ca188caa5fd6f458f205152f7f457883803d6315295e5ce9c13a17
6
+ metadata.gz: caebfced29047326d794c5732d0aa137bfec6146f8e4e8f66b80fbc786095e8ae54704a759bec6e5fa865fdc675d181d7744eb668057ccbfc3af62d3e4717d97
7
+ data.tar.gz: 9560fc33ffd3486e0cb20f971371bfc79cd15634c9a896eac46b0bcdb1554869b4725249c520630881b82f272a01d9bb67d688df1245a62b14fa16b1ad29a04e
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_runtime_dependency 'faker' , '~> 1.4'
20
20
  s.add_runtime_dependency 'highline' , '~> 1.7'
21
21
  s.add_runtime_dependency 'term-ansicolor' , '~> 1.3'
22
+ s.add_runtime_dependency 'parallel' , '~> 1.6'
22
23
 
23
24
  s.add_development_dependency 'rspec' , '~> 3.3'
24
25
  s.add_development_dependency 'guard' , '~> 2.13'
@@ -1,3 +1,4 @@
1
+
1
2
  require 'rake'
2
3
 
3
4
  namespace :scrub do
@@ -8,6 +9,7 @@ namespace :scrub do
8
9
  require 'highline/import'
9
10
  require 'term/ansicolor'
10
11
  require 'logger'
12
+ require 'parallel'
11
13
 
12
14
  @logger = Logger.new($stdout)
13
15
 
@@ -23,23 +25,30 @@ namespace :scrub do
23
25
 
24
26
  @total_scrubbed = 0
25
27
 
26
- ActiveRecord::Base.descendants.sort_by{|d| d.to_s }.each do |ar_class|
27
- next unless ar_class.scrubbable?
28
+ ar_classes = ActiveRecord::Base.descendants.select{|d| d.scrubbable? }.sort_by{|d| d.to_s }
29
+ Parallel.each(ar_classes) do |ar_class|
30
+
31
+ @logger.info "Scrubbing #{ar_class} ...".green
28
32
 
29
33
  scrubbed_count = 0
30
- ar_class.find_in_batches do |batch|
31
- batch.each do |obj|
32
- obj.scrub!
33
- scrubbed_count += 1
34
+
35
+ ActiveRecord::Base.connection_pool.with_connection do
36
+ ar_class.find_in_batches(batch_size: 1000) do |batch|
37
+ ActiveRecord::Base.transaction do
38
+ batch.each do |obj|
39
+ obj.scrub!
40
+ scrubbed_count += 1
41
+ end
42
+ end
34
43
  end
35
44
  end
36
- @logger.info "Scrubbed #{scrubbed_count} #{ar_class} objects".green
37
- @total_scrubbed += scrubbed_count
45
+
46
+ @logger.info "#{scrubbed_count} #{ar_class} objects scrubbed".blue
38
47
  end
39
48
 
49
+ @logger.info "Running after hook".red
40
50
  ActsAsScrubbable.execute_after_hook
41
51
 
42
- @logger.info "#{@total_scrubbed} scrubbed objects".blue
43
52
  @logger.info "Scrub Complete!".white
44
53
  end
45
54
  end
@@ -1,3 +1,3 @@
1
1
  module ActsAsScrubbable
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_scrubbable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samer Masry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-06 00:00:00.000000000 Z
11
+ date: 2015-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: parallel
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.6'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec
99
113
  requirement: !ruby/object:Gem::Requirement