Class: ActionMailer::Preview

Inherits:
Object
  • Object
show all
Extended by:
ActiveSupport::DescendantsTracker
Defined in:
lib/action_mailer/preview.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Preview

Returns a new instance of Preview.



74
75
76
# File 'lib/action_mailer/preview.rb', line 74

def initialize(params = {})
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



72
73
74
# File 'lib/action_mailer/preview.rb', line 72

def params
  @params
end

Class Method Details

.allObject

Returns all mailer preview classes.



80
81
82
83
# File 'lib/action_mailer/preview.rb', line 80

def all
  load_previews if descendants.empty?
  descendants.sort_by { |mailer| mailer.name.titleize }
end

.call(email, params = {}) ⇒ Object

Returns the mail object for the given email name. The registered preview interceptors will be informed so that they can transform the message as they would if the mail was actually being delivered.



88
89
90
91
92
93
# File 'lib/action_mailer/preview.rb', line 88

def call(email, params = {})
  preview = new(params)
  message = preview.public_send(email)
  inform_preview_interceptors(message)
  message
end

.email_exists?(email) ⇒ Boolean

Returns true if the email exists.

Returns:

  • (Boolean)


101
102
103
# File 'lib/action_mailer/preview.rb', line 101

def email_exists?(email)
  emails.include?(email)
end

.emailsObject

Returns all of the available email previews.



96
97
98
# File 'lib/action_mailer/preview.rb', line 96

def emails
  public_instance_methods(false).map(&:to_s).sort
end

.exists?(preview) ⇒ Boolean

Returns true if the preview exists.

Returns:

  • (Boolean)


106
107
108
# File 'lib/action_mailer/preview.rb', line 106

def exists?(preview)
  all.any? { |p| p.preview_name == preview }
end

.find(preview) ⇒ Object

Find a mailer preview by its underscored class name.



111
112
113
# File 'lib/action_mailer/preview.rb', line 111

def find(preview)
  all.find { |p| p.preview_name == preview }
end

.preview_nameObject

Returns the underscored name of the mailer preview without the suffix.



116
117
118
# File 'lib/action_mailer/preview.rb', line 116

def preview_name
  name.delete_suffix("Preview").underscore
end