effective_developer 0.6.5 → 0.6.6

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
  SHA256:
3
- metadata.gz: d5ec0b8ebeb89650bcd3faa9d72db0a63e59d412da44774ddf243cb41e2e27f9
4
- data.tar.gz: 030ee9a657eecd09ecbe4b35340c7a50d05128b7320ad8b098449088bd9b55d9
3
+ metadata.gz: f3a6071b2027da0c4eb454ff1d2446f014c557a99cb495190c5594d2d9ecda81
4
+ data.tar.gz: 3bdec7afda572520e2ac59ba94ca47116ea4019a2b582cc71e6c4bd0e28e0467
5
5
  SHA512:
6
- metadata.gz: 710dc72a3a8e31c031e7c357429e721ae4b550facca68fcf70054e6bcd1b3f6275e12619e4bbc5174e49077f6803290b6e5e2fe5c955a9d028630ff5815210ba
7
- data.tar.gz: d57c9a3f9697100ea078dbd6de9be128935349ec98380da04336c0a0d24edd6699fa4286b14464b834ed85fb813f3da7c7f3a16e129506be80ee2bbe6c95b46e
6
+ metadata.gz: 2c013f0c196b01b41860abe74341736f2a5bffbc45781a5190c38e68cb642145c5de1784b3473183a83e1b72fc97991be459f169f7d72165f37961c406a17115
7
+ data.tar.gz: 27a7d4470f8c02d76826e220861d9f43fa6cbe715059363a3fa010721878541586f6d831281114226806075adcb00bc994bb96deb1a1fdca49e0fe3addfbc365
@@ -12,10 +12,12 @@ module Effective
12
12
  BATCH_SIZE = 500
13
13
  TIMEOUT = 120
14
14
 
15
- def replace!(force: false)
15
+ def replace!(skip_existing: false)
16
16
  verify!
17
17
 
18
- attachments_to_process().find_in_batches(batch_size: BATCH_SIZE).each do |attachments|
18
+ attachments = attachments_to_process().to_a
19
+
20
+ while(true)
19
21
  wait_for_active_job!
20
22
 
21
23
  puts "\nEnqueuing #{attachments.length} attachments with ids #{attachments.first.id} to #{attachments.last.id}"
@@ -32,16 +34,22 @@ module Effective
32
34
  many = attachable.respond_to?(boxes) && attachable.send(boxes).kind_of?(ActiveStorage::Attached::Many)
33
35
  box = (one ? box : boxes)
34
36
 
35
- unless force
37
+ if skip_existing
36
38
  existing = Array(attachable.send(box))
37
39
 
38
40
  if existing.any? { |obj| obj.respond_to?(:filename) && obj.filename.to_s == asset.file_name }
39
- puts("Skipping: #{attachable.class.name} #{attachable.id} #{box} #{asset.file_name}. Already exists."); next
41
+ puts("Skipping existing #{attachable.class.name} #{attachable.id} #{box} #{asset.file_name}.")
42
+ next
40
43
  end
41
44
  end
42
45
 
43
46
  Effective::AssetReplacerJob.perform_later(attachment, box)
44
47
  end
48
+
49
+ attachments = attachments_to_process().where.not(id: attachments.map(&:id))
50
+ break if attachments.to_a.blank?
51
+
52
+ GC.start
45
53
  end
46
54
 
47
55
  puts "\nAll Done. Have a great day."
@@ -56,7 +64,7 @@ module Effective
56
64
  asset = attachment.asset
57
65
  attachable = attachment.attachable
58
66
 
59
- attachable.upgrading = true if attachable.respond_to?(:upgrading=)
67
+ attachable.replacing_asset = true if attachable.respond_to?(:replacing_asset=)
60
68
 
61
69
  Timeout.timeout(TIMEOUT) do
62
70
  attachable.send(box).attach(
@@ -120,15 +128,20 @@ module Effective
120
128
  def wait_for_active_job!
121
129
  while(true)
122
130
  if(jobs = enqueued_jobs_count) > (BATCH_SIZE / 10)
123
- print '.'; sleep(2)
131
+ print '.'; sleep(3)
124
132
  else
125
133
  break
126
134
  end
127
135
  end
128
136
  end
129
137
 
138
+ # The last BATCH_SIZE attachments
130
139
  def attachments_to_process
131
- Effective::Attachment.all.where(replaced: [nil, false]).order(:id).where('id < ?', 10000)
140
+ Effective::Attachment.all
141
+ .includes(:asset)
142
+ .where(replaced: [nil, false])
143
+ .reorder(id: :desc)
144
+ .limit(BATCH_SIZE)
132
145
  end
133
146
 
134
147
  def enqueued_jobs_count
@@ -1,3 +1,3 @@
1
1
  module EffectiveDeveloper
2
- VERSION = '0.6.5'.freeze
2
+ VERSION = '0.6.6'.freeze
3
3
  end
@@ -1,5 +1,5 @@
1
- # bundle exec rake replace_assets
1
+ # bundle exec rake replace_effective_assets
2
2
  desc 'Replaces effective_assets with ActiveStorage'
3
- task :replace_assets => :environment do
3
+ task :replace_effective_assets => :environment do
4
4
  Effective::AssetReplacer.new.replace!
5
5
  end
@@ -1,5 +1,5 @@
1
- # bundle exec rake replace_snippets
1
+ # bundle exec rake replace_effective_snippets
2
2
  desc 'Replaces effective_assets snippets with ActiveStorage uploads'
3
- task :replace_snippets => :environment do
3
+ task :replace_effective_snippets => :environment do
4
4
  Effective::SnippetReplacer.new.replace!
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_developer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
@@ -104,8 +104,8 @@ files:
104
104
  - lib/tasks/effective_csv_importer.rake
105
105
  - lib/tasks/pg_pull.rake
106
106
  - lib/tasks/rename_class.rake
107
- - lib/tasks/replace_assets.rake
108
- - lib/tasks/replace_snippets.rake
107
+ - lib/tasks/replace_effective_assets.rake
108
+ - lib/tasks/replace_effective_snippets.rake
109
109
  - lib/tasks/reset_pk_sequence.rake
110
110
  - lib/tasks/upgrade_forms.rake
111
111
  - lib/tasks/validate.rake