Keep VariantWithRecord API consistent with Variant

Similar to c18bcd582819212c0d8d5523f7918cd4c1c4d53f adds the
content_type and filename methods to VariantWithRecord.
This commit is contained in:
Petrik 2023-09-08 08:24:20 +02:00
parent 6633671e3a
commit 3e27f43dbc
2 changed files with 7 additions and 0 deletions

@ -7,6 +7,7 @@
class ActiveStorage::VariantWithRecord
attr_reader :blob, :variation
delegate :service, to: :blob
delegate :content_type, to: :variation
def initialize(blob, variation)
@blob, @variation = blob, ActiveStorage::Variation.wrap(variation)
@ -21,6 +22,10 @@ def image
record&.image
end
def filename
ActiveStorage::Filename.new "#{blob.filename.base}.#{variation.format.downcase}"
end
# Destroys record and deletes file from service.
def destroy
record&.destroy

@ -23,6 +23,8 @@ class ActiveStorage::VariantWithRecordTest < ActiveSupport::TestCase
end
assert_match(/racecar\.jpg/, variant.url)
assert_equal "racecar.jpg", variant.filename.to_s
assert_equal "image/jpeg", variant.content_type
image = read_image(variant.image)
assert_equal 100, image.width