Class: Notifier
- Inherits:
-
ApplicationMailer
- Object
- ActionMailer::Base
- ApplicationMailer
- Notifier
- Defined in:
- app/mailers/notifier.rb
Class Method Summary collapse
Instance Method Summary collapse
- #invite(email, inviter, invitation_code, locale) ⇒ Object
- #send_notification(type, *args) ⇒ Object
- #single_admin(string, recipient, opts = {}, subject = nil) ⇒ Object
Class Method Details
.admin(string, recipients, opts = {}, subject = nil) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'app/mailers/notifier.rb', line 8 def self.admin(string, recipients, opts = {}, subject=nil) mails = [] recipients.each do |rec| mail = single_admin(string, rec, opts.dup, subject) mails << mail end mails end |
Instance Method Details
#invite(email, inviter, invitation_code, locale) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/mailers/notifier.rb', line 35 def invite(email, inviter, invitation_code, locale) I18n.with_locale(locale) do mail_opts = {to: email, from: "\"#{AppConfig.settings.pod_name}\" <#{AppConfig.mail.sender_address}>", subject: I18n.t("notifier.invited_you", name: inviter.name)} name = inviter.full_name.empty? ? inviter.diaspora_handle : "#{inviter.name} (#{inviter.diaspora_handle})" body = I18n.t("notifier.invite.message", invite_url: invite_code_url(invitation_code), diasporafoundation_url: "https://diasporafoundation.org/", user: name, diaspora_id: inviter.diaspora_handle) mail(mail_opts) do |format| format.text { render "notifier/plain_markdown_email", layout: nil, locals: {body: body} } format.html { render "notifier/plain_markdown_email", layout: nil, locals: {body: body} } end end end |
#send_notification(type, *args) ⇒ Object
53 54 55 56 57 58 59 |
# File 'app/mailers/notifier.rb', line 53 def send_notification(type, *args) @notification = NotificationMailers.const_get(type.camelize).new(*args) with_recipient_locale do mail(@notification.headers) end end |
#single_admin(string, recipient, opts = {}, subject = nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/mailers/notifier.rb', line 17 def single_admin(string, recipient, opts={}, subject=nil) @receiver = recipient @string = string.html_safe if attach = opts.delete(:attachments) attach.each{ |f| [f[:name]] = f[:file] } end subject ||= I18n.t("notifier.single_admin.subject") default_opts = {to: @receiver.email, from: AppConfig.mail.sender_address, subject: subject} default_opts.merge!(opts) mail(default_opts) end |