better_record 0.15.1 → 0.15.2
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: 38d1f355a28bcc6fa75e43137e4f6d2096c78b85de3420733cf201826424e22d
|
4
|
+
data.tar.gz: d5da519726817d407cc67a027041dc0c258daf715f6c8675de934cda2c3b626b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cdb3aeac811064a91c3450942a5e5f0776e539aba2300a14c2ec7f2883caaf985d745e44a0dfaa5761ed794a0ba37322e2583c5d014435c5e5364852799c223
|
7
|
+
data.tar.gz: 7e965a6f43b3fb45b47ab026d682bf00294ec8b417077183189d85c39f965d247eb6a83d90e6d3a0e59c2194e4aa938a1c1d7a748262962a64fef211be494892
|
@@ -13,20 +13,35 @@ module BetterRecord
|
|
13
13
|
tmp.rewind
|
14
14
|
record.__send__(params[:attachment]).attach(
|
15
15
|
io: tmp,
|
16
|
-
filename: blob.filename,
|
16
|
+
filename: blob.filename.to_s.sub(/(\.[^.]*)$/, '-resized\1'),
|
17
17
|
content_type: blob.content_type
|
18
18
|
)
|
19
|
+
tmp.close
|
20
|
+
puts "\n\nSAVED IMAGE\n\n"
|
19
21
|
begin
|
20
|
-
|
22
|
+
if params[:backup_action].present?
|
23
|
+
record.class.find_by(params[:query]).__send__(params[:backup_action].to_sym)
|
24
|
+
end
|
21
25
|
rescue
|
26
|
+
puts "BACKUP ACTION FAILED"
|
27
|
+
puts $!.message
|
28
|
+
puts $!.backtrace
|
22
29
|
end
|
23
|
-
|
30
|
+
begin
|
31
|
+
puts "\n\n PURGING BLOB \n\n"
|
32
|
+
puts "blob exists? #{blob = ActiveStorage::Blob.find_by(id: blob.id).present?}"
|
33
|
+
blob.purge if blob.present?
|
34
|
+
puts "\n\n FINISHED PURGING BLOB \n\n"
|
35
|
+
rescue
|
36
|
+
end
|
37
|
+
else
|
38
|
+
raise ActiveRecord::RecordNotFound
|
24
39
|
end
|
25
|
-
true
|
40
|
+
return true
|
26
41
|
rescue
|
27
|
-
|
28
|
-
|
29
|
-
|
42
|
+
"ERROR RESIZING IMAGE"
|
43
|
+
puts $!.message
|
44
|
+
puts $!.backtrace.first(25)
|
30
45
|
return false
|
31
46
|
end
|
32
47
|
end
|
@@ -16,7 +16,6 @@ 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,
|
20
19
|
**opts
|
21
20
|
)
|
22
21
|
# == Constants ============================================================
|
@@ -61,22 +60,14 @@ module BetterRecord
|
|
61
60
|
define_method :valid_image_size do
|
62
61
|
if max_image_size && __send__(avatar_name).blob.byte_size > max_image_size
|
63
62
|
if shrink_large_image.present?
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
backup_action: "cache_current_#{avatar_name}",
|
73
|
-
options: shrink_large_image
|
74
|
-
}
|
75
|
-
rescue
|
76
|
-
puts $!.message
|
77
|
-
puts $!.backtrace
|
78
|
-
return false
|
79
|
-
end
|
63
|
+
@copy_later = true
|
64
|
+
ResizeBlobImageJob.perform_later(
|
65
|
+
model: self.class.to_s,
|
66
|
+
query: {id: self.id},
|
67
|
+
attachment: avatar_name.to_s,
|
68
|
+
backup_action: image_validator.to_s,
|
69
|
+
options: shrink_large_image
|
70
|
+
)
|
80
71
|
else
|
81
72
|
errors.add(avatar_name, "is too large, maximum #{ActiveSupport::NumberHelper.number_to_human_size(max_image_size)}")
|
82
73
|
return false
|
@@ -89,12 +80,17 @@ module BetterRecord
|
|
89
80
|
end
|
90
81
|
|
91
82
|
define_method :valid_image do
|
92
|
-
return unless __send__(avatar_name).attached?
|
83
|
+
return true unless __send__(avatar_name).attached?
|
93
84
|
|
94
85
|
if valid_image_format && valid_image_size
|
95
|
-
|
86
|
+
return true if @copy_later
|
87
|
+
puts "\n\nCOPYING AVATAR\n\n"
|
88
|
+
result = self.class.find_by(id: self.id).__send__(:"cache_current_#{avatar_name}")
|
89
|
+
puts "\n\nDONE COPYING AVATAR: #{result}\n\n"
|
90
|
+
result
|
96
91
|
else
|
97
|
-
|
92
|
+
r = self.find_by(id: self.id).__send__(avatar_name)
|
93
|
+
r.purge if r.attached?
|
98
94
|
__send__(:"load_last_#{avatar_name}") if __send__(:"last_#{avatar_name}").attached?
|
99
95
|
false
|
100
96
|
end
|
@@ -109,18 +105,23 @@ module BetterRecord
|
|
109
105
|
end
|
110
106
|
|
111
107
|
define_method :"copy_#{avatar_name}" do |from = avatar_name, to = :"last_#{avatar_name}"|
|
112
|
-
from
|
113
|
-
|
108
|
+
puts "COPYING #{from} TO #{to}"
|
109
|
+
from_attachment = __send__ from
|
110
|
+
to_attachment = __send__ to
|
114
111
|
|
115
|
-
purge(
|
112
|
+
purge(to_attachment) if to_attachment.attached?
|
116
113
|
|
117
114
|
tmp = Tempfile.new
|
118
115
|
tmp.binmode
|
119
|
-
tmp.write(
|
116
|
+
tmp.write(from_attachment.download)
|
120
117
|
tmp.flush
|
121
118
|
tmp.rewind
|
122
119
|
|
123
|
-
|
120
|
+
r = self.class.find_by(id: self.id)
|
121
|
+
from_attachment = r.__send__ from
|
122
|
+
to_attachment = r.__send__ to
|
123
|
+
|
124
|
+
to_attachment.attach(io: tmp, filename: from_attachment.filename, content_type: from_attachment.content_type)
|
124
125
|
tmp.close
|
125
126
|
true
|
126
127
|
end
|