Class: ReportCard::Runner

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
app/workers/report_card/runner.rb

Instance Method Summary collapse

Instance Method Details

#perform(klass_name, recipient_email) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/workers/report_card/runner.rb', line 7

def perform(klass_name, recipient_email)
  report = ReportCard::Report.find(klass_name).new

  tempfile = Tempfile.new('report_card')
  csv = CSV.open(tempfile, 'wb')
  report.to_csv(csv)

  uploader = ReportCard::Uploader.new
  uploader.store!(csv)

  csv.close

  ReportCard::Mailer.report(uploader.url, recipient_email).deliver
end