acts_as_scrubbable 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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