module ActionMailer::MailHelper

Provides helper methods for ActionMailer::Base that can be used for easily formatting messages, accessing mailer or message instances, and the attachments list.

Public Instance Methods

attachments() click to toggle source

Access the message attachments list.

# File lib/action_mailer/mail_helper.rb, line 31
def attachments
  mailer.attachments
end
block_format(text) click to toggle source

Take the text and format it, indented two spaces for each line, and wrapped at 72 columns.

# File lib/action_mailer/mail_helper.rb, line 8
def block_format(text)
  formatted = text.split(/\n\r?\n/).collect { |paragraph|
    format_paragraph(paragraph)
  }.join("\n\n")

  # Make list points stand on their own line
  formatted.gsub!(/[ ]*([*]+) ([^*]*)/) { "  #{$1} #{$2.strip}\n" }
  formatted.gsub!(/[ ]*([#]+) ([^#]*)/) { "  #{$1} #{$2.strip}\n" }

  formatted
end
format_paragraph(text, len = 72, indent = 2) click to toggle source

Returns text wrapped at len columns and indented indent spaces.

my_text = 'Here is a sample text with more than 40 characters'

format_paragraph(my_text, 25, 4)
# => "    Here is a sample text with\n    more than 40 characters"
# File lib/action_mailer/mail_helper.rb, line 41
def format_paragraph(text, len = 72, indent = 2)
  sentences = [[]]

  text.split.each do |word|
    if sentences.first.present? && (sentences.last + [word]).join(' ').length > len
      sentences << [word]
    else
      sentences.last << word
    end
  end

  indentation = " " * indent
  sentences.map! { |sentence|
    "#{indentation}#{sentence.join(' ')}"
  }.join "\n"
end
mailer() click to toggle source

Access the mailer instance.

# File lib/action_mailer/mail_helper.rb, line 21
def mailer
  @_controller
end
message() click to toggle source

Access the message instance.

# File lib/action_mailer/mail_helper.rb, line 26
def message
  @_message
end