Module: ActionmailerHostAutoset::ActionController::InstanceMethods

Defined in:
lib/actionmailer_host_autoset/actionmailer_host_autoset.rb

Instance Method Summary collapse

Instance Method Details

#actionmailer_host_autosetObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/actionmailer_host_autoset/actionmailer_host_autoset.rb', line 8

def actionmailer_host_autoset
  begin
    request = self.request
    ::ActionMailer::Base.class_eval do
      @old_default_url_options = default_url_options.clone
      default_url_options[:host] = request.host
      default_url_options[:port] = request.port unless [80, 443].include?(request.port)
      protocol = /(.*):\/\//.match(request.protocol)[1] if request.protocol.ends_with?("://")
      default_url_options[:protocol] = protocol
    end
    yield
  ensure
    ::ActionMailer::Base.class_eval do
      default_url_options[:host]     = @old_default_url_options[:host]
      default_url_options[:port]     = @old_default_url_options[:port] unless @old_default_url_options[:port].nil?
      default_url_options[:protocol] = @old_default_url_options[:protocol]
    end
  end
end