mail_spy 0.0.9 → 0.0.10

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.
@@ -14,7 +14,22 @@ module MailSpy
14
14
  }
15
15
  )
16
16
 
17
- redirect_to params[:url]
17
+
18
+ # Add in the GA tokens if present
19
+
20
+ ga_hash = {}
21
+ ga_hash[:utm_source] = email.utm_source if email.utm_source.present?
22
+ ga_hash[:utm_medium] = email.utm_medium if email.utm_medium.present?
23
+ ga_hash[:utm_campaign] = email.utm_campaign if email.utm_campaign.present?
24
+ ga_hash[:utm_term] = email.utm_term if email.utm_term.present?
25
+ ga_hash[:utm_content] = email.utm_content if email.utm_content.present?
26
+
27
+ #TODO this is not fool proof, it breaks on bad urls (like missing http://)
28
+ #TODO this also breaks when a param is already present it isn;t smart
29
+ uri = URI.parse(params[:url])
30
+ uri.query = [uri.query, ga_hash.to_param].compact.join('&')
31
+
32
+ redirect_to uri.to_s
18
33
  end
19
34
 
20
35
  def bug
@@ -1,3 +1,5 @@
1
+ require 'uri'
2
+
1
3
  module MailSpy
2
4
  module EmailHelper
3
5
 
@@ -21,6 +23,7 @@ module MailSpy
21
23
  tag_options = tag_options(html_options)
22
24
 
23
25
  # Inject our tracking url, and pass in the redirect_url
26
+
24
27
  hash = {
25
28
  :controller => "mail_spy/tracking",
26
29
  :action => :link,
@@ -31,16 +34,8 @@ module MailSpy
31
34
  :eid => @_email.id
32
35
  }
33
36
 
34
- # Add in the GA tokens if present
35
- hash[:utm_source] = @_email.utm_source if @_email.utm_source.present?
36
- hash[:utm_medium] = @_email.utm_medium if @_email.utm_medium.present?
37
- hash[:utm_campaign] = @_email.utm_campaign if @_email.utm_campaign.present?
38
- hash[:utm_term] = @_email.utm_term if @_email.utm_term.present?
39
- hash[:utm_content] = @_email.utm_content if @_email.utm_content.present?
40
-
41
37
  url = url_for(hash)
42
38
 
43
-
44
39
  href_attr = "href=\"#{ERB::Util.html_escape(url)}\"" unless href
45
40
  "<a #{href_attr}#{tag_options}>#{ERB::Util.html_escape(name || url)}</a>".html_safe
46
41
  end
data/config/routes.rb CHANGED
@@ -9,5 +9,5 @@ MailSpy::Engine.routes.draw do
9
9
 
10
10
  # Sendgrid notification api
11
11
  post "sendgrid/notification", :controller => :sendgrid, :action => :notification
12
-
12
+
13
13
  end
@@ -20,7 +20,8 @@ module MailSpy
20
20
  [:campaign, :stream, :component].each { |key| raise "##{key} can't be blank" if options[key].blank? }
21
21
 
22
22
  # Make sure we have someone to send to
23
- has_sender = options.keys.select { |option| to_options.include? option.intern }.present?
23
+ # TODO need to test setting the options but filling with nil
24
+ has_sender = to_options.select { |option| options[option].present? }.present?
24
25
  raise "Email instance has no sender (to,cc,bcc were all blank)" unless has_sender
25
26
 
26
27
  # Make sure that all options passed map to a accessor so we don't errantly
@@ -96,8 +97,8 @@ module MailSpy
96
97
  sent += 1
97
98
  rescue Exception => e
98
99
  email.failed = true
99
- email.error_message = e.message
100
- email.error_backtrace = e.backtrace
100
+ email.error_message = e.try(:message)
101
+ email.error_backtrace = e.try(:backtrace)
101
102
  email.save!
102
103
  end
103
104
  end
@@ -1,3 +1,3 @@
1
1
  module MailSpy
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -222,3 +222,49 @@ MONGODB [WARNING] Please note that logging negatively impacts client-side perfor
222
222
  MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
223
223
  MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
224
224
  MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
225
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
226
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
227
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
228
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
229
+
230
+
231
+ Started GET "/mail/test?url=www.google.com" for 127.0.0.1 at 2012-02-02 08:16:52 -0800
232
+ Processing by MailSpy::TrackingController#test as HTML
233
+ Parameters: {"url"=>"www.google.com"}
234
+ Redirected to http://localhost:3000www.google.com
235
+ Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
236
+
237
+
238
+ Started GET "/mail/test?url=http://www.google.com" for 127.0.0.1 at 2012-02-02 08:17:18 -0800
239
+ Processing by MailSpy::TrackingController#test as HTML
240
+ Parameters: {"url"=>"http://www.google.com"}
241
+ Redirected to http://www.google.com
242
+ Completed 302 Found in 0ms (ActiveRecord: 0.0ms)
243
+
244
+
245
+ Started GET "/mail/test?url=http://www.google.com" for 127.0.0.1 at 2012-02-02 08:32:03 -0800
246
+ Processing by MailSpy::TrackingController#test as HTML
247
+ Parameters: {"url"=>"http://www.google.com"}
248
+ Redirected to http://www.google.com?id=1&wee=3
249
+ Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
250
+
251
+
252
+ Started GET "/mail/test?url=http://www.google.com?dft=1" for 127.0.0.1 at 2012-02-02 08:32:33 -0800
253
+ Processing by MailSpy::TrackingController#test as HTML
254
+ Parameters: {"url"=>"http://www.google.com?dft=1"}
255
+ Redirected to http://www.google.com?dft=1&id=1&wee=3
256
+ Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
257
+
258
+
259
+ Started GET "/mail/test?url=www.google.com" for 127.0.0.1 at 2012-02-02 08:32:59 -0800
260
+ Processing by MailSpy::TrackingController#test as HTML
261
+ Parameters: {"url"=>"www.google.com"}
262
+ Redirected to http://localhost:3000www.google.com?id=1&wee=3
263
+ Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
264
+
265
+
266
+ Started GET "/mail/test?url=www.google.com" for 127.0.0.1 at 2012-02-02 08:32:59 -0800
267
+ Processing by MailSpy::TrackingController#test as HTML
268
+ Parameters: {"url"=>"www.google.com"}
269
+ Redirected to http://localhost:3000www.google.com?id=1&wee=3
270
+ Completed 302 Found in 1ms (ActiveRecord: 0.0ms)
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mail_spy
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.9
5
+ version: 0.0.10
6
6
  platform: ruby
7
7
  authors:
8
8
  - Timothy Cardenas