require_relative 'band' require_relative 'pdf_form' require 'date' require 'mail' def send_registration_emails_for(band, pdf_url) mail = Mail.new mail.charset = 'UTF-8' mail.to = settings.contact_email mail.from = @band.contact.email mail.subject = "Registrering av band #{@band.name} til Norsk Urskog" mail.body = erb :registration_email, :layout => false, :locals => { :pdf_url => pdf_url } if settings.environment != :test && settings.respond_to?(:smtp) mail.delivery_method :smtp, settings.smtp end mail.deliver! rescue Net::SMTPError => e band.errors << e.message end def generate_pdf_for(band, filename) pdf = PDFForm.new(band) pdf.render(filename) end def sanitize(s) s.gsub(/[ ,.:!^'*\/\\]+/, '-') end def create_pdf_file_name(band) filename = "#{Date.today.iso8601}-#{sanitize(band.name)}-#{sanitize(band.city)}.pdf" end def parse_date(str) Date.parse(str) rescue TypeError => e $stderr << "Invalid date specified: " << str raise end def accept_registrations(settings) start_date = parse_date(settings.accept_registrations[:start]) end_date = parse_date(settings.accept_registrations[:stop]) start_date <= Date.today && end_date > Date.today end