Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions lib/copy_carrierwave_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
require "copy_carrierwave_file/copy_file_service"

module CopyCarrierwaveFile
def copy_carrierwave_file(original_resource, destination_resource, mount_point)
CopyCarrierwaveFile::CopyFileService.new(original_resource, destination_resource, mount_point).set_file
def copy_carrierwave_file(original_resource, destination_resource, mount_point, dest_point = nil)
CopyCarrierwaveFile::CopyFileService.new(original_resource, destination_resource, mount_point, dest_point).set_file
end
end
15 changes: 8 additions & 7 deletions lib/copy_carrierwave_file/copy_file_service.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
module CopyCarrierwaveFile
class CopyFileService
attr_reader :original_resource, :resource, :mount_point
attr_reader :original_resource, :resource, :original_mount_point, :resource_mount_point

def initialize(original_resource, resource, mount_point)
@mount_point = mount_point.to_sym
def initialize(original_resource, resource, original_mount_point, resource_mount_point = nil)
@original_mount_point = original_mount_point.to_sym
@resource_mount_point = resource_mount_point || @original_mount_point

raise "#{original_resource} is not a resource with uploader" unless original_resource.class.respond_to? :uploaders
raise "#{original_resource} doesn't have mount point #{mount_point}" unless original_resource.class.uploaders[@mount_point]
raise "#{original_resource} doesn't have mount point #{mount_point}" unless original_resource.class.uploaders[@original_mount_point]

raise "#{resource} is not a resource with uploader" unless resource.class.respond_to? :uploaders
raise "#{resource} doesn't have mount point #{mount_point}" unless resource.class.uploaders[@mount_point]
raise "#{resource} doesn't have mount point #{mount_point}" unless resource.class.uploaders[@resource_mount_point]

@original_resource = original_resource
@resource = resource
Expand Down Expand Up @@ -57,11 +58,11 @@ def set_file_for_local_storage
end

def original_resource_mounter
original_resource.send(mount_point)
original_resource.send(original_mount_point)
end

def set_resource_mounter_file(file)
resource.send( :"#{mount_point.to_s}=", file)
resource.send( :"#{resource_mount_point.to_s}=", file)
end

end
Expand Down