app/models/daily_report.rb in daily-0.0.8 vs app/models/daily_report.rb in daily-0.0.9
- old
+ new
@@ -14,12 +14,15 @@
validates_stripped_presence_of :formatter
before_validation :filename_extension_update
after_save :ensure_job
- after_save :queue_now!, :if => :filename_changed?
+ after_save :queue_now!, :if => :queue_job_now?
+ after_save :delete_file!, :if => :archived?
+ after_destroy :delete_file!
+
def self.formatters
Ruport::Controller::Table.formats.keys
end
def parent
@@ -41,10 +44,15 @@
def file_exists?
File.file?(localfile)
end
+ def delete_file!
+ File.delete(localfile) if File.file?(localfile)
+ true
+ end
+
def generate!
Dir.mkdir(localdir) unless File.directory?(localdir)
touch(:generate_started_at)
data = table.result
data = apply_transform(data)
@@ -78,24 +86,42 @@
def next_job
jobs.by_priority.first
end
+ def archive
+ self.archived = true
+ save ? self : nil
+ end
+
+ def archive!
+ self.archived = true
+ save!
+ end
+
+ def unarchive
+ self.archived = false
+ save ? self : nil
+ end
+
protected
+
+ def queue_job_now?
+ return false if archived?
+ filename_changed? or archived_changed?
+ end
def guid_append
return "" if formatter.blank?
".#{formatter.strip}"
end
def calculate_next_gen_time
Time.now + 1.hour
end
- protected
-
def ensure_job
- queue_next! if jobs.reload.size == 0
+ queue_next! if not archived? and jobs.reload.size == 0
true
end
def filename_extension_update
return true if filename_changed?
\ No newline at end of file