class ActiveStorage::Service::MirrorService

Attributes

services[R]

Public Class Methods

new(services:) click to toggle source
# File lib/active_storage/service/mirror_service.rb, line 8
def initialize(services:)
  @services = services
end

Public Instance Methods

delete(key) click to toggle source
# File lib/active_storage/service/mirror_service.rb, line 19
def delete(key)
  perform_across_services :delete, key
end
upload(key, io, checksum: nil) click to toggle source
# File lib/active_storage/service/mirror_service.rb, line 12
def upload(key, io, checksum: nil)
  services.collect do |service|
    service.upload key, io, checksum: checksum
    io.rewind
  end
end

Private Instance Methods

perform_across_services(method, *args) click to toggle source
# File lib/active_storage/service/mirror_service.rb, line 28
def perform_across_services(method, *args)
  # FIXME: Convert to be threaded
  services.collect do |service|
    service.public_send method, *args
  end
end
primary_service() click to toggle source
# File lib/active_storage/service/mirror_service.rb, line 24
def primary_service
  services.first
end