refactors zip file creation
This commit is contained in:
@@ -1,19 +1,12 @@
|
|||||||
require 'zip'
|
|
||||||
class Admin::NewslettersController < Admin::BaseController
|
class Admin::NewslettersController < Admin::BaseController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
end
|
end
|
||||||
|
|
||||||
def users
|
def users
|
||||||
folder = Rails.root + "/tmp/"
|
zip = NewsletterZip.new('emails')
|
||||||
zipfile_name = folder + "emails.zip"
|
zip.create
|
||||||
|
send_file(File.join(zip.path), type: 'application/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')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
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