Sha256: 2de5563928d37774d741538478c873faf8b25289f22ecb3d7dd96a3fe19185d2
Contents?: true
Size: 1.26 KB
Versions: 8
Compression:
Stored size: 1.26 KB
Contents
module Fae class AssetCloner NoFileForOriginalResource = Class.new(StandardError) UnknownStorage = Class.new(StandardError) attr_reader :original_resource, :resource, :mount_point def initialize(original_resource, resource, mount_point) @mount_point = mount_point.to_sym @original_resource = original_resource @resource = resource end def set_file if have_file? case original_resource_mounter.send(:storage).class.name when 'CarrierWave::Storage::File' set_file_for_local_storage when 'CarrierWave::Storage::Fog', 'CarrierWave::Storage::AWS' set_file_for_remote_storage else raise UnknownStorage end else raise NoFileForOriginalResource end end def have_file? original_resource_mounter.file.present? || original_resource_mounter.url end def set_file_for_remote_storage resource.send(:"remote_#{mount_point.to_s}_url=", original_resource_mounter.url) end def set_file_for_local_storage resource.send(:"#{mount_point.to_s}=", ::File.open(original_resource_mounter.file.file)) end def original_resource_mounter original_resource.send(mount_point) end end end
Version data entries
8 entries across 8 versions & 2 rubygems