refactors zip file creation

This commit is contained in:
rgarcia
2016-04-18 05:15:16 +02:00
committed by Bertocq
parent 8f4eec2b8e
commit 80be0c6b65
2 changed files with 28 additions and 10 deletions

View File

@@ -1,19 +1,12 @@
require 'zip'
class Admin::NewslettersController < Admin::BaseController
def index
end
def users
folder = Rails.root + "/tmp/"
zipfile_name = folder + "emails.zip"
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
zipfile.get_output_stream("emails.txt") do |os|
os.write User.newsletter.pluck(:email).join("\n")
end
end
send_file(File.join(folder + "emails.zip"), :type => 'application/zip')
zip = NewsletterZip.new('emails')
zip.create
send_file(File.join(zip.path), type: 'application/zip')
end
end

25
lib/newsletter_zip.rb Normal file
View File

@@ -0,0 +1,25 @@
require 'zip'
class NewsletterZip
attr_accessor :filename
def initialize(filename)
@filename = filename
end
def emails
User.newsletter.pluck(:email).join("\n")
end
def path
Rails.root + "/tmp/#{filename}.zip"
end
def create
Zip::File.open("#{filename}.zip", Zip::File::CREATE) do |zipfile|
zipfile.get_output_stream("#{filename}.txt") do |file|
file.write emails
end
end
end
end