referthis 0.2.5 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  # http://stackoverflow.com/questions/6021372/best-way-to-create-unique-token-in-rails
2
2
  class Mailer < ActionMailer::Base
3
- def send_referral(referral)
4
- mail(:to => Referee.find(referral.referee_id).endpoint, :from => 'adoptahydrantsyracuse@gmail.com', :subject => '<app_name>', :body => '<user_name> has referred you to <app_name>. You might be interested in checking out the following: <url>' + Base64::encode64(referral.id.to_s).chop + '.')
3
+ def send_referral(referral, url, referrer_name, app_name)
4
+ mail(:to => Referee.find(referral.referee_id).endpoint, :subject => app_name, :body => referrer_name + ' has referred you to ' + app_name + '. You might be interested in checking out the following: ' + url + '/' + Base64::encode64(referral.id.to_s).chop + '.')
5
5
  end
6
6
  end
data/lib/referee.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # http://ryanbigg.com/2011/01/extending-active-record/
2
+ require 'active_record'
1
3
  class Referee < ActiveRecord::Base
2
4
  attr_accessible :endpoint
3
5
  has_many :referrals
data/lib/referral.rb CHANGED
@@ -1,6 +1,9 @@
1
+ require 'active_record'
2
+ require 'mailers/mailer'
3
+ require 'sms'
1
4
  class Referral < ActiveRecord::Base
2
5
  attr_accessible :referee_id, :user_id
3
-
6
+
4
7
  def self.construct(referee_id)
5
8
  referral = Referral.new
6
9
  referral.referee_id = referee_id
@@ -8,17 +11,16 @@ class Referral < ActiveRecord::Base
8
11
  referral.save
9
12
  return referral
10
13
  end
11
-
12
- def self.generate_referral(endpoints, user_current_id)
14
+ def self.generate_referral(endpoints, user_current_id, url, referrer_name, app_name)
13
15
  threads = []
14
16
  @user_current_id = user_current_id
15
17
  if endpoints[:phone_number] != ''
16
18
  threads << Thread.new('sms'){
17
19
  phone_number = SMS.sieve(endpoints[:phone_number])
18
20
  if Referee.exists?(:endpoint => phone_number)
19
- SMS.send_referral(self.construct(Referee.find_by_endpoint(phone_number.to_s).id))
21
+ SMS.send_referral(self.construct(Referee.find_by_endpoint(phone_number.to_s).id), url, referrer_name, app_name)
20
22
  else
21
- SMS.send_referral(self.construct(Referee.construct(phone_number.to_s).id))
23
+ SMS.send_referral(self.construct(Referee.construct(phone_number.to_s).id), url, referrer_name, app_name)
22
24
  end
23
25
  }
24
26
  end
@@ -27,9 +29,9 @@ class Referral < ActiveRecord::Base
27
29
  email_address = endpoints[:email_address]
28
30
  begin
29
31
  if Referee.exists?(:endpoint => email_address)
30
- Mailer.send_referral(self.construct(Referee.find_by_endpoint(email_address).id)).deliver
32
+ Mailer.send_referral(self.construct(Referee.find_by_endpoint(email_address).id), url, referrer_name, app_name).deliver
31
33
  else
32
- Mailer.send_referral(self.construct(Referee.construct(email_address).id)).deliver
34
+ Mailer.send_referral(self.construct(Referee.construct(email_address).id), url, referrer_name, app_name).deliver
33
35
  end
34
36
  rescue Net::SMTPSyntaxError
35
37
  puts 'Hello'
@@ -38,7 +40,6 @@ class Referral < ActiveRecord::Base
38
40
  end
39
41
  threads.each {|thread| thread.join}
40
42
  end
41
-
42
43
  def self.percent_clicked_through(email=nil, sms=nil)
43
44
  if email || sms
44
45
  referrals = Referral.all
@@ -69,7 +70,6 @@ class Referral < ActiveRecord::Base
69
70
  end
70
71
  end
71
72
  end
72
-
73
73
  def self.resolve_token(token)
74
74
  referral_id = Base64::decode64(token)
75
75
  if self.exists?(:id => referral_id)
data/lib/referthis.rb ADDED
@@ -0,0 +1,16 @@
1
+ # http://ruby-doc.org/core-1.9.3/File.html#method-c-dirname
2
+ # http://www.google.com/search?sugexp=chrome,mod=4&sourceid=chrome&ie=UTF-8&q=path+of+current+file+ruby
3
+ # http://www.rubyist.net/~slagell/ruby/inheritance.html
4
+ # http://stackoverflow.com/questions/3724487/rails-root-directory-path
5
+ # http://stackoverflow.com/questions/3539148/how-do-i-access-the-name-of-the-rails-3-application-object
6
+ require 'referral'
7
+ require 'referee'
8
+ class ReferThis < Referral
9
+ def self.setup
10
+ system('cp -r ' + File.dirname(File.absolute_path(__FILE__)) + '/db/migrate/* ' + "'" + Rails.root.to_s.split('app/').first + "/db/migrate/'")
11
+ system('rake db:migrate')
12
+ end
13
+ def self.url(endpoints, user_current_id, url, referrer_name, app_name=Rails.application.class.to_s.split("::").first)
14
+ self.generate_referral(endpoints, user_current_id, url, referrer_name, app_name)
15
+ end
16
+ end
data/lib/sms.rb CHANGED
@@ -7,8 +7,7 @@ class SMS
7
7
  def self.sieve(number)
8
8
  return number.to_s.gsub(/\D/, '')
9
9
  end
10
-
11
- def self.send_referral(referral)
12
- @@account.sms.messages.create(:from => '+18599030353', :to => Referee.find(referral.referee_id).endpoint, :body => '<user_name> has referred you to <app_name>. You might be interested in checking out the following: <url>' + Base64::encode64(referral.id.to_s).chop + '.')
10
+ def self.send_referral(referral, url, referrer_name, app_name)
11
+ @@account.sms.messages.create(:from => '+18599030353', :to => Referee.find(referral.referee_id).endpoint, :body => referrer_name + ' has referred you to ' + app_name + '. You might be interested in checking out the following: ' + url + '/' + Base64::encode64(referral.id.to_s).chop + '.')
13
12
  end
14
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: referthis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -23,8 +23,8 @@ files:
23
23
  - lib/db/migrate/20120621004835_create_referrals.rb
24
24
  - lib/db/migrate/20120621004904_create_referees.rb
25
25
  - lib/db/migrate/20120621215402_add_keys.rb
26
- - lib/initializers/smtp_settings.rb
27
26
  - lib/mailers/mailer.rb
27
+ - lib/referthis.rb
28
28
  homepage: http://github.com/ahcarpenter/referthis
29
29
  licenses: []
30
30
  post_install_message:
@@ -1,8 +0,0 @@
1
- ActionMailer::Base.smtp_settings = {
2
- :address => 'smtp.gmail.com',
3
- :port => 587,
4
- :authentication => :plain,
5
- :domain => 'mail.google.com',
6
- :user_name => 'adoptahydrantsyracuse@gmail.com',
7
- :password => 'Drewby!23'
8
- }