class Imgproxy::UrlAdapters::ActiveStorage
Adapter for ActiveStorage
Imgproxy.configure do |config| config.url_adapters.add Imgproxy::UrlAdapters::ActiveStorage.new end Imgproxy.url_for(user.avatar)
Public Instance Methods
applicable?(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 11 def applicable?(image) image.is_a?(::ActiveStorage::Attached::One) || image.is_a?(::ActiveStorage::Attachment) || image.is_a?(::ActiveStorage::Blob) end
url(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 17 def url(image) return s3_url(image) if use_s3_url(image) return gcs_url(image) if use_gcs_url(image) Rails.application.routes.url_helpers.url_for(image) end
Private Instance Methods
config()
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 42 def config Imgproxy.config end
gcs_url(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 34 def gcs_url(image) "gs://#{config.gcs_bucket}/#{image.key}" end
s3_url(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 26 def s3_url(image) "s3://#{image.service.bucket.name}/#{image.key}" end
use_gcs_url(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 38 def use_gcs_url(image) config.use_gcs_urls && image.service.is_a?(::ActiveStorage::Service::GCSService) end
use_s3_url(image)
click to toggle source
# File lib/imgproxy/url_adapters/active_storage.rb, line 30 def use_s3_url(image) config.use_s3_urls && image.service.is_a?(::ActiveStorage::Service::S3Service) end