better_record 0.21.3 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/better_record/attachment_validation.rb +5 -3
- data/app/models/better_record/model_concerns/has_validated_avatar.rb +34 -43
- data/config/initializers/active_storage/attachment.rb +1 -0
- data/lib/better_record/fake_redis.rb +0 -10
- data/lib/better_record/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f87fad71d3c41ee882975f1fa04439d66097c08e73e612b4566b2080dc42a3d4
|
4
|
+
data.tar.gz: 0a3802ec44c019360ef5e85437c941b797b02ef22e7e630da5ecd6ff21f124b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f6592c9d85fcdd10c3dcf0782b0c3785d1f48a5575756cec4a177668d606785968814b1e8455ce094aa66dead9cd8c636858f8c283869d97b4d8a0c228b50ff
|
7
|
+
data.tar.gz: e40e619662ad6a3c6a1aa68767c110cdd0417cdfd56d05cdb06b9c1f21b2c988cea3381d958e0b3571c7d9c154bf98d5028206e714362af09aec16966e9be314
|
@@ -28,9 +28,11 @@ module BetterRecord
|
|
28
28
|
# == Boolean Class Methods ================================================
|
29
29
|
|
30
30
|
# == Class Methods ========================================================
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
def self.delete_invalid
|
32
|
+
BetterRecord::AttachmentValidation.
|
33
|
+
where.not( id: BetterRecord::AttachmentValidation.joins(:attachment).select(:id) ).
|
34
|
+
delete_all
|
35
|
+
end
|
34
36
|
|
35
37
|
# == Boolean Methods ======================================================
|
36
38
|
|
@@ -58,10 +58,14 @@ module BetterRecord
|
|
58
58
|
end
|
59
59
|
|
60
60
|
define_method :"create_#{avatar_name}_validation" do |ran=false|
|
61
|
+
BetterRecord::AttachmentValidation.delete_invalid
|
61
62
|
begin
|
62
|
-
|
63
|
+
opts = { name: image_validator, attachment_id: reloaded_record&.__send__(avatar_name)&.attachment&.id, ran: ran }
|
64
|
+
AttachmentValidation.create!(opts) if opts[:attachment_id]
|
63
65
|
rescue
|
64
|
-
|
66
|
+
if ran && $!.is_a?(PG::UniqueViolation) && !__send__(:"#{avatar_name}_validation_record").ran
|
67
|
+
__send__(:"#{avatar_name}_validation_record").update(ran: true)
|
68
|
+
end
|
65
69
|
end
|
66
70
|
__send__(:"#{avatar_name}_validation_record")
|
67
71
|
end
|
@@ -88,7 +92,7 @@ module BetterRecord
|
|
88
92
|
puts "\nSHRINKING\n"
|
89
93
|
self.__send__ :"shrinking_#{avatar_name}=", true
|
90
94
|
(
|
91
|
-
shrink_wait_time
|
95
|
+
shrink_wait_time ?
|
92
96
|
ResizeBlobImageJob.set(wait: shrink_wait_time) :
|
93
97
|
ResizeBlobImageJob
|
94
98
|
).perform_later(
|
@@ -112,75 +116,62 @@ module BetterRecord
|
|
112
116
|
define_method :valid_image do
|
113
117
|
return true unless __send__(avatar_name).attached?
|
114
118
|
__send__(:"create_#{avatar_name}_validation", true)
|
119
|
+
raise "Uh Oh" unless __send__(:"#{avatar_name}_validation_ran?", true)
|
115
120
|
|
116
121
|
if valid_image_format && valid_image_size
|
117
122
|
self.__send__(:"shrinking_#{avatar_name}") ||
|
118
|
-
|
123
|
+
__send__(:"cache_current_#{avatar_name}")
|
124
|
+
true
|
119
125
|
else
|
120
|
-
|
121
|
-
begin
|
122
|
-
r.purge_later if r.attached?
|
123
|
-
rescue Exception
|
124
|
-
end
|
125
|
-
__send__(:"load_last_#{avatar_name}") if __send__(:"last_#{avatar_name}").attached?
|
126
|
+
__send__(:"load_last_#{avatar_name}")
|
126
127
|
false
|
127
128
|
end
|
128
129
|
end
|
129
130
|
|
130
131
|
define_method :"check_#{image_validator}" do |*args|
|
131
|
-
return true
|
132
|
+
return true if self.id.blank? || !reloaded_record&.__send__(avatar_name).attached?
|
132
133
|
__send__(image_validator) unless __send__(:"#{avatar_name}_validation_ran?", true)
|
133
134
|
end
|
134
135
|
|
135
136
|
define_method :"cache_current_#{avatar_name}" do
|
136
|
-
|
137
|
+
__send__ :"copy_#{avatar_name}"
|
137
138
|
end
|
138
139
|
|
139
140
|
define_method :"load_last_#{avatar_name}" do
|
140
|
-
|
141
|
+
__send__ :"copy_#{avatar_name}", :"last_#{avatar_name}", avatar_name
|
142
|
+
__send__(:"create_#{avatar_name}_validation", true)
|
141
143
|
end
|
142
144
|
|
143
145
|
define_method :"copy_#{avatar_name}" do |from = avatar_name, to = :"last_#{avatar_name}"|
|
144
146
|
puts "COPYING #{from} TO #{to}"
|
147
|
+
# begin
|
148
|
+
# rescue
|
149
|
+
# puts $!.message
|
150
|
+
# puts $!.backtrace
|
151
|
+
# end
|
152
|
+
|
145
153
|
from_attachment = __send__ from
|
154
|
+
to_attachment = __send__ to
|
146
155
|
|
147
|
-
delete_attachment to
|
148
156
|
|
149
157
|
if from_attachment.attached?
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
r = reloaded_record
|
157
|
-
from_attachment = r.__send__ from
|
158
|
-
to_attachment = r.__send__ to
|
159
|
-
|
160
|
-
to_attachment.attach(
|
161
|
-
ActionDispatch::Http::UploadedFile.new(
|
162
|
-
tempfile: tmp,
|
163
|
-
filename: from_attachment.filename.to_s,
|
164
|
-
type: from_attachment.content_type
|
165
|
-
)
|
166
|
-
)
|
167
|
-
tmp.close
|
158
|
+
return true if from_attachment.attachment&.blob_id == to_attachment.attachment&.blob_id
|
159
|
+
delete_attachment to
|
160
|
+
to_attachment.attach from_attachment.blob
|
161
|
+
else
|
162
|
+
delete_attachment to
|
168
163
|
end
|
169
|
-
true
|
170
164
|
end
|
171
165
|
|
172
166
|
define_method :delete_attachment do |att_name = avatar_name, now = false|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
begin
|
180
|
-
ActiveStorage::Attachment.find_by(id: atchd.id).destroy
|
181
|
-
rescue Exception
|
182
|
-
end
|
167
|
+
begin
|
168
|
+
atchd = __send__ att_name
|
169
|
+
if atchd.attachment
|
170
|
+
atchd_blob = atchd.blob
|
171
|
+
atchd.detach
|
172
|
+
atchd_blob&.__send__ now ? :purge : :purge_later
|
183
173
|
end
|
174
|
+
rescue Exception
|
184
175
|
end
|
185
176
|
end
|
186
177
|
|
@@ -0,0 +1 @@
|
|
1
|
+
ActiveStorage::Attachment.belongs_to :record, polymorphic: true, touch: false
|
@@ -80,16 +80,6 @@ module BetterRecord
|
|
80
80
|
val
|
81
81
|
end
|
82
82
|
|
83
|
-
def keys(pattern = ".*")
|
84
|
-
data.keys.filter {|k| k.to_s =~ /^#{pattern}$/}
|
85
|
-
end
|
86
|
-
|
87
|
-
def del(*keys)
|
88
|
-
i = 0
|
89
|
-
keys.map {|k| data.delete(k) && (i += 1) }
|
90
|
-
i
|
91
|
-
end
|
92
|
-
|
93
83
|
def method_missing
|
94
84
|
return nil
|
95
85
|
end
|
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.22.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: 2019-04-
|
11
|
+
date: 2019-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -252,6 +252,7 @@ files:
|
|
252
252
|
- config/initializers/active_record/gender_type.rb
|
253
253
|
- config/initializers/active_record/money_integer_type.rb
|
254
254
|
- config/initializers/active_record/three_state_type.rb
|
255
|
+
- config/initializers/active_storage/attachment.rb
|
255
256
|
- config/initializers/active_support/time_with_zone.rb
|
256
257
|
- config/initializers/concerns.rb
|
257
258
|
- config/initializers/core_ext/date.rb
|