Class: DailyReport
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- DailyReport
- Includes:
- SharedBehaviors
- Defined in:
- app/models/daily_report.rb
Class Method Summary collapse
Instance Method Summary collapse
- #file_exists? ⇒ Boolean
- #generate! ⇒ Object
- #localdir ⇒ Object
- #localfile ⇒ Object
- #next_job ⇒ Object
- #parent ⇒ Object
- #queue_next! ⇒ Object
- #queue_now! ⇒ Object
- #save_as!(data, path) ⇒ Object
- #url(root) ⇒ Object
Methods included from SharedBehaviors
Class Method Details
.formatters ⇒ Object
21 22 23 |
# File 'app/models/daily_report.rb', line 21 def self.formatters Ruport::Controller::Table.formats.keys end |
Instance Method Details
#file_exists? ⇒ Boolean
42 43 44 |
# File 'app/models/daily_report.rb', line 42 def file_exists? File.file?(localfile) end |
#generate! ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'app/models/daily_report.rb', line 46 def generate! Dir.mkdir(localdir) unless File.directory?(localdir) touch(:generate_started_at) data = table.result data = apply_transform(data) val = save_as!(data, localfile) touch(:generate_ended_at) val end |
#localdir ⇒ Object
29 30 31 |
# File 'app/models/daily_report.rb', line 29 def localdir "#{Rails.root}/#{parent}" end |
#localfile ⇒ Object
33 34 35 |
# File 'app/models/daily_report.rb', line 33 def localfile "#{localdir}/#{filename}" end |
#next_job ⇒ Object
79 80 81 |
# File 'app/models/daily_report.rb', line 79 def next_job jobs.by_priority.first end |
#parent ⇒ Object
25 26 27 |
# File 'app/models/daily_report.rb', line 25 def parent "files/#{table.guid}" end |
#queue_next! ⇒ Object
64 65 66 67 68 69 70 |
# File 'app/models/daily_report.rb', line 64 def queue_next! job = GenerateReportJob.new(id, true) Delayed::Job.enqueue :payload_object => job, :priority => 10, :run_at => calculate_next_gen_time, :report_id => id end |
#queue_now! ⇒ Object
72 73 74 75 76 77 |
# File 'app/models/daily_report.rb', line 72 def queue_now! job = GenerateReportJob.new(id, false) Delayed::Job.enqueue :payload_object => job, :priority => 0, :report_id => id end |
#save_as!(data, path) ⇒ Object
56 57 58 59 60 61 62 |
# File 'app/models/daily_report.rb', line 56 def save_as!(data, path) tempfile = "#{Rails.root}/process/#{Time.now.to_i}_#{rand(9999999)}_#{rand(9999999)}.tmp" return false unless data.as(formatter.to_sym, (formatter_data || {}).merge(:file => tempfile)) return false unless File.file?(tempfile) File.rename(tempfile, path) File.file?(path) end |