aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/active_storage/service/mirror_service.rb25
1 files changed, 4 insertions, 21 deletions
diff --git a/lib/active_storage/service/mirror_service.rb b/lib/active_storage/service/mirror_service.rb
index 2a3518e59e..0d37ad96a3 100644
--- a/lib/active_storage/service/mirror_service.rb
+++ b/lib/active_storage/service/mirror_service.rb
@@ -1,6 +1,10 @@
+require "active_support/core_ext/module/delegation"
+
class ActiveStorage::Service::MirrorService < ActiveStorage::Service
attr_reader :services
+ delegate :download, :exist?, :url, :byte_size, :checksum, to: :primary_service
+
def initialize(services:)
@services = services
end
@@ -12,31 +16,10 @@ class ActiveStorage::Service::MirrorService < ActiveStorage::Service
end
end
- def download(key)
- services.detect { |service| service.exist?(key) }.download(key)
- end
-
def delete(key)
perform_across_services :delete, key
end
- def exist?(key)
- perform_across_services(:exist?, key).any?
- end
-
-
- def url(key, **options)
- primary_service.url(key, **options)
- end
-
- def byte_size(key)
- primary_service.byte_size(key)
- end
-
- def checksum(key)
- primary_service.checksum(key)
- end
-
private
def primary_service
services.first