aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Landauer <matthew@openaustralia.org>2012-10-10 12:21:35 +1100
committerMatthew Landauer <matthew@openaustralia.org>2012-10-10 12:21:35 +1100
commit027de1b859c049299b7ffa4d2f691cd65f1d0ace (patch)
tree759742fa5d6ed6a454643f0edf91c0d2e093b6e6
parent88f3d5661bafbd921d8f273df0d97d9842d7fb2e (diff)
Extract method
-rw-r--r--app/models/exim_log.rb31
1 files changed, 18 insertions, 13 deletions
diff --git a/app/models/exim_log.rb b/app/models/exim_log.rb
index 0be1ff8a3..ac3cb11a3 100644
--- a/app/models/exim_log.rb
+++ b/app/models/exim_log.rb
@@ -51,19 +51,24 @@ class EximLog < ActiveRecord::Base
# update done structure so we know when we last read this file
done.save!
- # scan the file
- order = 0
- (is_gz ? Zlib::GzipReader.open(file_name) : File.open(file_name, 'r')).each do |line|
- order = order + 1
- email_domain = Configuration::incoming_email_domain
- emails = line.scan(/request-[^\s]+@#{email_domain}/).sort.uniq
- for email in emails
- info_request = InfoRequest.find_by_incoming_email(email)
- if info_request
- info_request.exim_logs.create!(:line => line, :order => order, :exim_log_done => done)
- else
- puts "Warning: Could not find request with email #{email}"
- end
+ f = is_gz ? Zlib::GzipReader.open(file_name) : File.open(file_name, 'r')
+ load_exim_log_data(f, done)
+ end
+ end
+
+ # Scan the file
+ def EximLog.load_exim_log_data(f, done)
+ order = 0
+ f.each do |line|
+ order = order + 1
+ email_domain = Configuration::incoming_email_domain
+ emails = line.scan(/request-[^\s]+@#{email_domain}/).sort.uniq
+ for email in emails
+ info_request = InfoRequest.find_by_incoming_email(email)
+ if info_request
+ info_request.exim_logs.create!(:line => line, :order => order, :exim_log_done => done)
+ else
+ puts "Warning: Could not find request with email #{email}"
end
end
end