module Roda::RodaPlugins::Mailer::ClassMethods

def mail(path, *args)

returned mail object before calling deliver to send the mail.
block after any usual match block arguments. You can further manipulate the
and arguments. Any arguments given are yielded to the appropriate r.mail
Return a Mail::Message instance for the email for the given request path

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

def sendmail(*args)

Calls mail with given arguments and immediately sends the resulting mail.

def sendmail(*args)
  if m = mail(*args)
    m.deliver
  end
end