aboutsummaryrefslogtreecommitdiffstats
path: root/lib/active_storage/variant.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-20 17:35:15 -0500
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-20 17:35:15 -0500
commitaf999681122bf583b6644974ba2033453935fd6d (patch)
treed8d18f67d6892035bad07fa759fc2bf2377ef6c9 /lib/active_storage/variant.rb
parent6c2cef21ce67f83bff45ce76c0370b03be11451f (diff)
downloadrails-af999681122bf583b6644974ba2033453935fd6d.tar.gz
rails-af999681122bf583b6644974ba2033453935fd6d.tar.bz2
rails-af999681122bf583b6644974ba2033453935fd6d.zip
Make processing an explicit step
Diffstat (limited to 'lib/active_storage/variant.rb')
-rw-r--r--lib/active_storage/variant.rb12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/active_storage/variant.rb b/lib/active_storage/variant.rb
index 3053f44211..a07735eb57 100644
--- a/lib/active_storage/variant.rb
+++ b/lib/active_storage/variant.rb
@@ -13,8 +13,8 @@ class ActiveStorage::Variant
attr_reader :blob, :variation
delegate :service, to: :blob
- def self.find_or_create_by(blob_key:, variation_key:)
- new ActiveStorage::Blob.find_by!(key: blob_key), variation: verifier.verify(variation_key)
+ def self.find_or_process_by!(blob_key:, encoded_variant_key:)
+ new(ActiveStorage::Blob.find_by!(key: blob_key), variation: verifier.verify(encoded_variant_key)).processed
end
def self.encode_key(variation)
@@ -25,8 +25,12 @@ class ActiveStorage::Variant
@blob, @variation = blob, variation
end
+ def processed
+ process unless exist?
+ self
+ end
+
def url(expires_in: 5.minutes, disposition: :inline)
- perform unless exist?
service.url blob_variant_key, expires_in: expires_in, disposition: disposition, filename: blob.filename
end
@@ -39,7 +43,7 @@ class ActiveStorage::Variant
service.exist?(blob_variant_key)
end
- def perform
+ def process
upload_variant transform(download_blob)
end