better_record 0.14.6 → 0.15.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce8484d1edf7ffd679a8c3e2b6cfedb3602a979cad7b63930505c53f7fbf2c44
|
4
|
+
data.tar.gz: 2b7a2ba41a6670d710ac47fc8eab490f7147d005b035abdb50dc78ba1f4478dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9c42297037f1e6f78b009631d7790502bc39c3bdff5401c8f9ee64d36c746ddbbd6274abb49b815ae236a11d8378b8fecd7a0b2062d6a705c3e820b4117452e
|
7
|
+
data.tar.gz: 5956669acd747dfdc77fc6feaeb9cd6e56d2b4bb51483e66da7e563bc9fb6e61b6a86b2af4f36974372b65c7e1a514dc08532f27c841c2b4b4e1db845127b573
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module BetterRecord
|
2
|
+
class ResizeBlobImageJob < ApplicationJob
|
3
|
+
queue_as :default
|
4
|
+
|
5
|
+
def perform(**params)
|
6
|
+
if record = params[:model].constantize.find_by(params[:query].deep_symbolize_keys)
|
7
|
+
blob = record.__send__(params[:attachment]).blob
|
8
|
+
tmp = Tempfile.new
|
9
|
+
tmp.binmode
|
10
|
+
tmp.write(blob.service.download(blob.variant(params[:options]).processed.key))
|
11
|
+
tmp.flush
|
12
|
+
tmp.rewind
|
13
|
+
record.__send__(params[:attachment]).attach(
|
14
|
+
io: tmp,
|
15
|
+
filename: blob.filename,
|
16
|
+
content_type: blob.content_type
|
17
|
+
)
|
18
|
+
blob.purge_later
|
19
|
+
params[:backup_action].present? && record.__send__(params[:backup_action])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -16,6 +16,7 @@ module BetterRecord
|
|
16
16
|
min_image_size: nil,
|
17
17
|
max_image_size: 500.kilobytes,
|
18
18
|
shrink_large_image: false,
|
19
|
+
shrink_later: false,
|
19
20
|
**opts
|
20
21
|
)
|
21
22
|
# == Constants ============================================================
|
@@ -59,16 +60,21 @@ module BetterRecord
|
|
59
60
|
|
60
61
|
define_method :valid_image_size do
|
61
62
|
if max_image_size && __send__(avatar_name).blob.byte_size > max_image_size
|
62
|
-
if shrink_large_image
|
63
|
+
if shrink_large_image.present?
|
63
64
|
begin
|
64
65
|
blob = __send__(avatar_name).blob
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
66
|
+
@copy_later = true
|
67
|
+
ResizeBlobImageJob.
|
68
|
+
__send__ (shrink_later ? :perform_later : :perform_now), {
|
69
|
+
model: self.class.to_s,
|
70
|
+
query: {id: self.id},
|
71
|
+
attachment: avatar_name,
|
72
|
+
backup_action: :"cache_current_#{avatar_name}",
|
73
|
+
options: shrink_large_image
|
74
|
+
}
|
71
75
|
rescue
|
76
|
+
puts $!.message
|
77
|
+
puts $!.backtrace
|
72
78
|
return false
|
73
79
|
end
|
74
80
|
else
|
@@ -86,7 +92,7 @@ module BetterRecord
|
|
86
92
|
return unless __send__(avatar_name).attached?
|
87
93
|
|
88
94
|
if valid_image_format && valid_image_size
|
89
|
-
__send__(:"cache_current_#{avatar_name}")
|
95
|
+
__send__(:"cache_current_#{avatar_name}") unless @copy_later
|
90
96
|
else
|
91
97
|
purge(__send__(avatar_name))
|
92
98
|
__send__(:"load_last_#{avatar_name}") if __send__(:"last_#{avatar_name}").attached?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sampson Crowley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -235,6 +235,7 @@ files:
|
|
235
235
|
- app/helpers/better_record/application_helper.rb
|
236
236
|
- app/helpers/better_record/table_sizes_helper.rb
|
237
237
|
- app/jobs/better_record/application_job.rb
|
238
|
+
- app/jobs/better_record/resize_blob_image_job.rb
|
238
239
|
- app/mailers/better_record/application_mailer.rb
|
239
240
|
- app/models/better_record/base.rb
|
240
241
|
- app/models/better_record/current.rb
|