Module: Roda::RodaPlugins::Mailer::ClassMethods
- Defined in:
- lib/roda/plugins/mailer.rb
Instance Method Summary collapse
-
#mail(path, *args) ⇒ Object
Return a Mail::Message instance for the email for the given request path and arguments.
-
#sendmail(*args) ⇒ Object
Calls
mailwith given arguments and immediately sends the resulting mail.
Instance Method Details
#mail(path, *args) ⇒ Object
Return a Mail::Message instance for the email for the given request path and arguments. Any arguments given are yielded to the appropriate r.mail block after any usual match block arguments. You can further manipulate the returned mail object before calling deliver to send the mail.
145 146 147 148 149 150 151 152 153 |
# File 'lib/roda/plugins/mailer.rb', line 145 def mail(path, *args) mail = ::Mail.new catch(:no_mail) do unless mail.equal?(new("PATH_INFO"=>path, 'SCRIPT_NAME'=>'', "REQUEST_METHOD"=>"MAIL", 'rack.input'=>StringIO.new, 'roda.mail'=>mail, 'roda.mail_args'=>args)._roda_handle_main_route) raise Error, "route did not return mail instance for #{path.inspect}, #{args.inspect}" end mail end end |
#sendmail(*args) ⇒ Object
Calls mail with given arguments and immediately sends the resulting mail.
159 160 161 162 163 |
# File 'lib/roda/plugins/mailer.rb', line 159 def sendmail(*args) if m = mail(*args) m.deliver end end |