Class: MailJack::Interceptor

Inherits:
Object
  • Object
show all
Defined in:
lib/mail_jack/interceptor.rb

Class Method Summary collapse

Class Method Details



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/mail_jack/interceptor.rb', line 25

def self.append_links(text, querystr)
  str = text.to_s
  hrefs = str.scan(/href=\"(.*?)\"/).flatten
  hrefs = hrefs.grep(MailJack.config.href_filter)
  hrefs = hrefs.uniq

  hrefs.each do |h| 
    q = h.include?("?") ?  "&#{querystr}" : "?#{querystr}" 
    str.gsub!(h, "#{h}#{q}")
  end
  return str
end

.delivering_email(message) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/mail_jack/interceptor.rb', line 3

def self.delivering_email(message)
  querystr = generate_query_string(message)

  if message.multipart?
    message.parts.each do |part|
      unless part.attachment?
        part.body = append_links(part.body, querystr)
      end
    end
  else
    message.body = append_links(message.body, querystr)
  end
end

.generate_query_string(message) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/mail_jack/interceptor.rb', line 17

def self.generate_query_string(message)
  querystr = MailJack.trackables.keys.inject({}) {|hash, a| hash[a] = message.send(a); hash}.to_query
  if MailJack.config.enable_encoding?
    querystr = "#{MailJack.config.encode_to}=#{Base64.encode64(querystr)}"
  end
  return querystr
end