Files
old-holivud2/app/services/release_contract_collection_service.rb
2020-05-31 22:38:19 +02:00

35 lines
983 B
Ruby

class ReleaseContractCollectionService
def initialize(releases, folder_name)
@releases = releases
@folder_name = folder_name
end
def build
Dir.mktmpdir { |dir|
releases.each do |release|
if release.native?
next unless release.contract_template.present?
contract = Contract.new(release)
open("#{dir}/#{contract.filename}", 'wb') do |file|
file << open(contract.to_pdf.path).read
end
else
next unless release.contract.attached?
open("#{dir}/" + release.contract.filename.to_s, 'wb') do |file|
file << open(release.contract.service_url.to_s).read
end
end
end
files = Dir.entries("#{dir}/").select { |f| !File.directory? f }
raise StandardError.new "Contracts or Contract Templates not found." unless files.any?
yield(dir, files)
}
end
private
attr_reader :releases, :folder_name
end