Class: EmailInterceptor

Inherits:
Object
  • Object
show all
Defined in:
lib/email_interceptor.rb,
lib/email_interceptor/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Instance Method Summary collapse

Constructor Details

#initialize(strategy, opts = {}) ⇒ EmailInterceptor

Returns a new instance of EmailInterceptor.



5
6
7
8
9
10
11
# File 'lib/email_interceptor.rb', line 5

def initialize(strategy, opts={})
  strategies = [:live, :internal_only, :fake]
  @strategy = strategies.include?(strategy) ? strategy : :fake
  @fake_email_address = opts[:fake_email_address] || '[email protected]'
  @internal_recipient_matcher = opts[:internal_recipient_matcher]
  @logger_file = opts[:logger_file]
end

Instance Method Details

#delivering_email(message) ⇒ Object



13
14
15
16
# File 'lib/email_interceptor.rb', line 13

def delivering_email(message)
  override_mail_to(message)
  log_delivery(message)
end

#log_delivery(message) ⇒ Object



24
25
26
27
28
29
# File 'lib/email_interceptor.rb', line 24

def log_delivery(message)
  return unless @logger_file
  File.open(@logger_file, 'a') do |f|
    f.puts "#{Time.now}\n#{message}"
  end
end

#override_mail_to(message) ⇒ Object



18
19
20
21
22
# File 'lib/email_interceptor.rb', line 18

def override_mail_to(message)
  unless @strategy == :live
    message.to = message.to.map { |t| override_single_recipient(t) }
  end
end