25 lines
582 B
Ruby
25 lines
582 B
Ruby
class CastingSubmissionFilesCollectionService
|
|
def initialize(files, folder_name)
|
|
@files = files
|
|
@folder_name = folder_name
|
|
end
|
|
|
|
def build
|
|
Dir.mktmpdir { |dir|
|
|
files.each do |file|
|
|
open("#{dir}/#{file.filename}", 'wb') do |tmp_file|
|
|
tmp_file << open(file.service_url.to_s).read
|
|
end
|
|
end
|
|
|
|
read_files = Dir.entries("#{dir}/").select { |f| !File.directory? f }
|
|
raise StandardError.new "Files not found." unless read_files.any?
|
|
yield(dir, read_files)
|
|
}
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :files, :folder_name
|
|
end
|