refactors zip file creation
This commit is contained in:
@@ -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
25
lib/newsletter_zip.rb
Normal 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
|
||||
Reference in New Issue
Block a user