Module: RakeHelpers

Defined in:
lib/rake_helpers.rb

Overview

Copyright © 2010-2011, Diaspora Inc. This file is

licensed under the Affero General Public License version 3 or later.  See
the COPYRIGHT file.

Instance Method Summary (collapse)

Instance Method Details

- (Object) process_emails(csv, num_to_process, offset, test = true)



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rake_helpers.rb', line 6

def process_emails(csv, num_to_process, offset, test=true)
  require 'csv'
  backers = CSV.read(csv)
  puts "DRY RUN" if test
  churn_through = 0
  num_to_process.times do |n|
    if backers[n+offset] == nil
      break
    end
    churn_through = n
    backer_name = backers[n+offset][1].to_s.strip
    backer_email = backers[n+offset][0].to_s.strip.downcase
    
    possible_user = User.find_by_email(backer_email)
    possible_invite = Invitation.find_by_identifier(backer_email)
    possible_user ||= possible_invite.recipient if possible_invite.present?

     = User.find_by_username(AppConfig.admins..get)
    raise "no admin account in diaspora.yml" unless .present?
    .invitation_code.count += num_to_process
    .invitation_code.save

    unless possible_user
      puts "#{n}: sending email to: #{backer_name} #{backer_email}" unless Rails.env == 'test'
      unless test
        i = EmailInviter.new(backer_email)
        i.send!
      end
    else
      puts "user with the email exists: #{backer_email} ,  #{backer_name} " unless Rails.env == 'test'
    end
  end
  churn_through
end