better_record 0.21.3 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|