Module: NinthBit::SanitizeEmail

Defined in:
lib/sanitize_email/sanitize_email.rb

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/sanitize_email/sanitize_email.rb', line 7

def self.included(base)
  
  # Adds the following class attributes to the classes that include NinthBit::SanitizeEmail
  base.cattr_accessor :force_sanitize
  base.force_sanitize = nil
  
  # Specify the BCC addresses for the messages that go out in 'local' environments
  base.cattr_accessor :sanitized_bcc
  base.sanitized_bcc = nil
 
  # Specify the CC addresses for the messages that go out in 'local' environments
  base.cattr_accessor :sanitized_cc
  base.sanitized_cc = nil

  # The recipient addresses for the messages, either as a string (for a single
  # address) or an array (for multiple addresses) that go out in 'local' environments
  base.cattr_accessor :sanitized_recipients
  base.sanitized_recipients = nil
  
  base.class_eval do
    #We need to alias these methods so that our new methods get used instead
    alias :real_bcc :bcc
    alias :real_cc :cc
    alias :real_recipients :recipients

    def localish?
      #consider_local is a method in sanitize_email/lib/custom_environments.rb
      # it is included in ActionMailer in sanitize_email/init.rb
      !self.class.force_sanitize.nil? ? self.class.force_sanitize : self.class.consider_local?
    end

    def recipients(*addresses)
      real_recipients *addresses
      puts "sanitize_email error: sanitized_recipients is not set" if self.class.sanitized_recipients.nil?
      localish? ? self.class.sanitized_recipients : real_recipients
    end

    def bcc(*addresses)
      real_bcc *addresses
      localish? ? self.class.sanitized_bcc : real_bcc
    end

    def cc(*addresses)
      real_cc *addresses
      localish? ? self.class.sanitized_cc : real_cc
    end
  
  end

end