class MailWorker

Public Instance Methods

perform(identifier, to_addr) click to toggle source
# File lib/cutting_edge/workers/mail.rb, line 11
def perform(identifier, to_addr)
  log_info('Running Worker!')
  dependencies = get_from_store(identifier)
  unless to_addr && dependencies
    log_info("Failed to execute email job for #{identifier}: #{dependencies ? dependencies : 'No dependencies found.'} #{'No e-mail address set.' if to_addr.nil?}")
    return nil
  end
  
  if diff = delete_from_store("diff-#{identifier}")
    diff.transform_values! {|v| v == :good_change ? 'green' : 'red' }
  else
    diff = {}
  end

  Mail.deliver do
    from     "CuttingEdge <#{CuttingEdge::MAIL_FROM}>"
    to       to_addr
    subject  "Dependency Status Changed For #{identifier}"
    
    text_part do
      body "Dependency Status Update For #{identifier} By CuttingEdge"
    end
    
    html_part do
      content_type 'text/html; charset=UTF-8'
      body  ERB.new(CuttingEdge::MAIL_TEMPLATE).result_with_hash(
        project: identifier,
        url: CuttingEdge::SERVER_URL,
        diff: diff,
        specs: dependencies
      )
    end
  end
end