Class: SimpleEmailPreview::Preview
- Inherits:
-
Object
- Object
- SimpleEmailPreview::Preview
- Defined in:
- app/models/simple_email_preview/preview.rb
Overview
Preview for one mailer method
Class Attribute Summary collapse
-
.all ⇒ Object
readonly
Returns the value of attribute all.
Instance Attribute Summary collapse
-
#id ⇒ Object
Returns the value of attribute id.
-
#preview_class_name ⇒ Object
Returns the value of attribute preview_class_name.
-
#preview_method ⇒ Object
Returns the value of attribute preview_method.
Class Method Summary collapse
Instance Method Summary collapse
- #formats ⇒ Object
- #group_name ⇒ Object
- #humanized_method_name ⇒ Object (also: #method_name)
-
#initialize(attr = {}) ⇒ Preview
constructor
A new instance of Preview.
- #locales ⇒ Object
- #name ⇒ Object
- #preview_mail(run_hooks = false, search_query_params = {}) ⇒ Object
Constructor Details
#initialize(attr = {}) ⇒ Preview
6 7 8 |
# File 'app/models/simple_email_preview/preview.rb', line 6 def initialize(attr = {}) attr.each { |k, v| send "#{k}=", v } end |
Class Attribute Details
.all ⇒ Object (readonly)
Returns the value of attribute all.
49 50 51 |
# File 'app/models/simple_email_preview/preview.rb', line 49 def all @all end |
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
4 5 6 |
# File 'app/models/simple_email_preview/preview.rb', line 4 def id @id end |
#preview_class_name ⇒ Object
Returns the value of attribute preview_class_name.
4 5 6 |
# File 'app/models/simple_email_preview/preview.rb', line 4 def preview_class_name @preview_class_name end |
#preview_method ⇒ Object
Returns the value of attribute preview_method.
4 5 6 |
# File 'app/models/simple_email_preview/preview.rb', line 4 def preview_method @preview_method end |
Class Method Details
.find(email_id) ⇒ Object Also known as: []
43 44 45 |
# File 'app/models/simple_email_preview/preview.rb', line 43 def find(email_id) @by_id[email_id] end |
.load_all(class_names) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/models/simple_email_preview/preview.rb', line 55 def load_all(class_names) @all = [] @by_id = {} class_names.each do |preview_class_name| preview_class = preview_class_name.constantize mail_methods(preview_class).sort.each do |preview_method| mailer_method = preview_method id = "#{preview_class_name.underscore.gsub('/', '__')}-#{mailer_method}" email = new( id: id, preview_class_name: preview_class_name, preview_method: preview_method ) @all << email @by_id[id] = email end end @all.sort_by!(&:name) end |
.mail_methods(mailer) ⇒ Object
51 52 53 |
# File 'app/models/simple_email_preview/preview.rb', line 51 def mail_methods(mailer) mailer.public_instance_methods(false).map(&:to_s) end |
Instance Method Details
#formats ⇒ Object
14 15 16 |
# File 'app/models/simple_email_preview/preview.rb', line 14 def formats %w[plain raw] end |
#group_name ⇒ Object
38 39 40 |
# File 'app/models/simple_email_preview/preview.rb', line 38 def group_name @group_name ||= preview_class_name.to_s.underscore.gsub('/', ': ').sub(/(_mailer)?_preview$/, '').humanize end |
#humanized_method_name ⇒ Object Also known as: method_name
31 32 33 |
# File 'app/models/simple_email_preview/preview.rb', line 31 def humanized_method_name @action_name ||= preview_method.to_s.humanize end |
#locales ⇒ Object
10 11 12 |
# File 'app/models/simple_email_preview/preview.rb', line 10 def locales I18n.available_locales end |
#name ⇒ Object
27 28 29 |
# File 'app/models/simple_email_preview/preview.rb', line 27 def name @name ||= "#{group_name}: #{humanized_method_name}" end |
#preview_mail(run_hooks = false, search_query_params = {}) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'app/models/simple_email_preview/preview.rb', line 18 def preview_mail(run_hooks = false, search_query_params = {}) preview_instance = preview_class_name.constantize.new setup_instance_variables(preview_instance, search_query_params) preview_instance.send(preview_method).tap do |mail| SimpleEmailPreview.run_before_render(mail, self) if run_hooks end end |