class SecretSantaPicker::Processor
Public Class Methods
new(conf)
click to toggle source
# File lib/secret_santa_picker/processor.rb, line 9 def initialize(conf) @conf = conf end
Public Instance Methods
run()
click to toggle source
# File lib/secret_santa_picker/processor.rb, line 13 def run pairs.each { |pair| send_mail(pair: pair) } end
Private Instance Methods
pairs()
click to toggle source
# File lib/secret_santa_picker/processor.rb, line 44 def pairs return @pairs if defined?(@pairs) array_of_arrays = CSV.read(@conf.csv_file_path) persons = Person.generate(csv_array: array_of_arrays) @pairs = Pair.generate(persons: persons) end
send_mail(pair:)
click to toggle source
# File lib/secret_santa_picker/processor.rb, line 19 def send_mail(pair:) sender_email = @conf.sender_email subject = [@conf.subject_prefix, "Secret Santa #{Date.today.strftime('%Y')}"].compact.join(" ") mail = Mail.new do from sender_email to pair.from.email subject subject body "Hey #{pair.from.name},\n\nYou are the secret Santa for #{pair.to.name}.\n\nGood Luck!" end if @conf.debug $stdout.puts(mail) return end mail.delivery_method :smtp, address: 'smtp.gmail.com', port: 587, user_name: @conf.sender_email, password: @conf.sender_password, authentication: :plain, enable_starttls_auto: true mail.deliver end