diff options
author | Matthew Landauer <matthew@openaustralia.org> | 2012-10-10 12:21:35 +1100 |
---|---|---|
committer | Matthew Landauer <matthew@openaustralia.org> | 2012-10-10 12:21:35 +1100 |
commit | 027de1b859c049299b7ffa4d2f691cd65f1d0ace (patch) | |
tree | 759742fa5d6ed6a454643f0edf91c0d2e093b6e6 | |
parent | 88f3d5661bafbd921d8f273df0d97d9842d7fb2e (diff) |
Extract method
-rw-r--r-- | app/models/exim_log.rb | 31 |
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 |