Sha256: c323826496c6412892cf83e040a88a71b7ffe41ab9a833cfb81a045dd6843799

Contents?: true

Size: 1.3 KB

Versions: 3

Compression:

Stored size: 1.3 KB

Contents

namespace :peoplefinder do

  def inadequate_profiles
    @inadequate_profiles = Peoplefinder::Person.inadequate_profiles
  end

  def inadequate_profiles_with_email
    inadequate_profiles.select { |person| person.email.present? }
  end

  desc 'list the email addresses of people with inadequate profiles'
  task inadequate_profiles: :environment do

    inadequate_profiles.each do |person|
      puts "#{ person.surname }, #{ person.given_name }: #{ person.email }"
    end
    puts "\n** There are #{ inadequate_profiles.count } inadequate profiles."
    puts "** #{ inadequate_profiles_with_email.count }
      inadequate profiles have email addresses."
    puts "\n"
  end

  desc 'email people with inadequate profiles'
  task inadequate_profile_reminders: :environment do
    recipients = inadequate_profiles_with_email

    puts "\nYou are about to email #{ recipients.count } people"
    puts 'Are you sure you want to do this? [Y/N]'

    if STDIN.gets.chomp == 'Y'
      recipients.each do |recipient|

        if Peoplefinder::EmailAddress.new(recipient.email).valid_address?
          Peoplefinder::ReminderMailer.inadequate_profile(recipient).deliver
          puts "Email sent to: #{ recipient.email }"

        else
          puts "Email *not* sent to: #{ recipient.email }"
        end
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
peoplefinder-0.1.1 lib/tasks/peoplefinder.rake
peoplefinder-0.1.0 lib/tasks/peoplefinder.rake
peoplefinder-0.0.2 lib/tasks/peoplefinder.rake