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